我知道 Tcl 中的 if 语句需要大括号{ }
而不是括号( )
。
"Aha!"
但是,由于 Tcl 似乎能够正确解释 if 条件,因此会打印以下(错误的)代码:
set flow_control 1
if ($flow_control==1) {
puts "Aha!"
}
然而,以下(带空格)因表达式“(1”中的不平衡开放括号)而失败
set flow_control 1
if ($flow_control == 1) {
puts "Aha!"
}
当然,使用带或不带括号、带或不带空格的大括号都可以:
set flow_control 1
if {$flow_control == 1} {
puts "Braces rule!"
}
我的问题是,为什么第二种情况会失败?
Donal Fellows 对TCL 中的 if 语句的回答清楚地解释了大括号和括号之间的区别,但我无法弄清楚为什么空格会导致第二个块失败。