我有一个返回字符串的函数但是我不能将该值存储到变量中。我试过这个
% 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的输出为空白为什么会这样?
更新:
调查此问题后。似乎我有一个无法改变的方法。此方法将输出打印到屏幕。我想要做的是在变量中捕获该输出。
答案 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