将值存储到TCL中返回函数的变量中

时间:2014-12-11 16:57:57

标签: tcl

我有一个返回字符串的函数但是我不能将该值存储到变量中。我试过这个

% set m [return "This is returned value"]
This is returned value
% puts $m
can't read "m": no such variable

有什么建议我可能在这里做错了吗? 我也试过这样的事情

% set m [puts "Test"]
Test
% puts $m
...

m的输出为空白为什么会这样?

更新:

调查此问题后。似乎我有一个无法改变的方法。此方法将输出打印到屏幕。我想要做的是在变量中捕获该输出。

1 个答案:

答案 0 :(得分:2)

如果你想从函数中返回值,它应该是这样的

proc value { } {
   return rajesh
}

set result [value]

puts命令不会返回任何值,如果将其分配给变量,它将为空字符串。

在第一种情况下,您在变量赋值中使用了return,如

set m [return "This is returned value"]

由于return,代码会立即返回。它无处可归。任何下面的进一步代码,根本不会运行。这就是它失败的原因 can't read "m": no such variable