1

我正在从程序中的文件中逐行读取一组数据。现在我怎样才能从这个过程中返回这些数据行。以及如何将从此过程输出的这些数据分配给数据集?

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

我怎样才能从这个过程中返回这些数据?

4

2 回答 2

3

您可以使用返回语句:

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陈述。

于 2012-07-12T01:28:16.163 回答
3

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

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

-- http://www.tcl.tk/man/tcl8.5/TclCmd/proc.htm

于 2012-07-12T03:59:24.323 回答