简单的问题,TCL给了我"表达式过早结束"的错误提示,因为三元表达式的最后一个参数是空字符串。如果它是其他任何值,那么它可以正常工作。我能在这里使用空字符串吗?
set y 5
set x [expr ($y > 1) ? 1 : ""]
set y 5
set x [expr ($y > 1) ? 1 : ""]
在传递参数时,应该将expr
作为一个完整的表达式放在花括号中。这样做可以避免一系列问题,包括此问题。
expr {$y > 1 ? 1 : ""}
expr
连接其参数以获得表达式。调用concat $y > 1 ? 1 : ""
生成字符串"5 > 1 ? 1 : ",这个字符串无法被expr
解析。
if { $x eq Tx } { doSomething }
。在其他地方,字符串不需要引号,甚至文档中也说不要使用引号。 - MikeKulls