Parameters 如何在TCL中将数据集传递出进程

Parameters 如何在TCL中将数据集传递出进程,parameters,return,tcl,Parameters,Return,Tcl,我正在从一个过程中的文件中逐行读取一组数据。现在我如何从这个过程中返回这些数据行。我如何将从这个过程输出的数据分配给数据集 proc readdata{} { set fptr [open Test1.txt r] set fptr_data [read $fptr] set data [split $fptr_data "\n"] } 如何在此过程中返回此数据?您可以使用以下语句: proc readdata {filename} { set fptr [

我正在从一个过程中的文件中逐行读取一组数据。现在我如何从这个过程中返回这些数据行。我如何将从这个过程输出的数据分配给数据集

proc readdata{} {
    set fptr [open Test1.txt r]
    set fptr_data [read $fptr]
    set data [split $fptr_data "\n"]  
}
如何在此过程中返回此数据?

您可以使用以下语句:

proc readdata {filename} {
    set fptr [open $filename r]
    set fptr_data [read $fptr]
    set data [split $fptr_data "\n"]
    return $data
}
...
set dataset [readdata Test1.txt]
但是,默认情况下,Tcl过程返回上次运行的命令的结果。就我个人而言,我更喜欢显式的
返回
语句。

您可以使用以下语句:

proc readdata {filename} {
    set fptr [open $filename r]
    set fptr_data [read $fptr]
    set data [split $fptr_data "\n"]
    return $data
}
...
set dataset [readdata Test1.txt]

但是,默认情况下,Tcl过程返回上次运行的命令的结果。就我个人而言,我更喜欢一个明确的
返回声明。

从技术上讲,您不需要做任何其他事情:

调用过程时,该过程的返回值是
return
命令中指定的值。如果过程没有执行显式的
返回
,则其返回值是在过程主体中执行的最后一个命令的值


--

从技术上讲,您不需要做其他事情:

调用过程时,该过程的返回值是
return
命令中指定的值。如果过程没有执行显式的
返回
,则其返回值是在过程主体中执行的最后一个命令的值


--

在您的情况下,确切地说,什么是“数据集”?您可能希望
read
split
之间关闭$fptr
。在您的情况下,确切地说,什么是“数据集”?您可能希望
read
split
之间关闭$fptr