爲什麼這不像我想的那樣工作?爲什麼tcl的「if」返回值?
set x [if {1} {return 2} {return 3}]
命令輸出顯示2
,但是當你檢查x
值時,它被發現是不確定的..!
我看過一個解決辦法,...
proc give {x} {return $x}
set x [if {1} {give 2} {give 3}]
...但我不明白爲什麼第一個不能正常工作。
從the tcl 8.5 documentation for if
:
「,從命令的返回值是已執行的身體腳本,或空字符串的結果如果沒有表達式是非零的,並沒有bodyN。 「
問題:
- 爲什麼不
set x [if {1} {return 2} {return 3}]
設置x
值? - 鑑於
set x [if {1} {return 2} {return 3}]
不起作用,tclsh
如何在交互式shell上顯示「2
」? - 鑑於
tclsh
在交互式shell上顯示「2
」,set x
如何保持undefined?