我正在从一个过程中的文件中逐行读取一组数据。现在我该如何从此过程返回这些数据行。如何将从此过程输出的这些数据分配给数据集?
proc readdata{} {
set fptr [open Test1.txt r]
set fptr_data [read $fptr]
set data [split $fptr_data "\n"]
}
如何从此程序返回此数据?
答案 0 :(得分:3)
您可以使用return声明:
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
陈述。
答案 1 :(得分:3)
从技术上讲,你不需要做任何其他事情:
调用过程时,过程的返回值是
return
命令中指定的值。如果该过程没有执行显式return
,则其返回值过程正文中执行的最后一个命令的值。