为什么这不像我想的那样工作?
set x [if {1} {return 2} {return 3}]
命令输出显示2
,但是查看 的值x
,发现是未定义的..!
我已经阅读了解决方法,...
proc give {x} {return $x}
set x [if {1} {give 2} {give 3}]
...但我不明白为什么第一个不起作用。
来自tcl 8.5 文档if
:
“命令的返回值是执行的正文脚本的结果,或者如果没有表达式非零且没有 bodyN,则为空字符串。”
问题:
- 为什么不
set x [if {1} {return 2} {return 3}]
设置值x
? - 鉴于这
set x [if {1} {return 2} {return 3}]
不起作用,如何在交互式外壳上tclsh
显示“2
”? - 鉴于在交互式外壳上
tclsh
显示“ ”,它是如何保持未定义的?2
set x