TCL三元运算符不喜欢空字符串

时间:2015-01-09 00:42:23

标签: tcl ternary-operator

简单的问题,TCL给了我"过早的表达结束"因为三元表达式的最后一个参数是一个空字符串。如果它是其他任何东西那么它的工作正常。我可以在这里使用空字符串吗?

set y 5
set x [expr ($y > 1) ? 1 : ""]

1 个答案:

答案 0 :(得分:7)

你应该总是给expr一个完整的表达式,用括号括起来作为参数。这避免了一大堆问题,包括这个问题。

expr {$y > 1 ? 1 : ""}

问题是expr连接其参数以获取表达式。调用concat $y > 1 ? 1 : ""给出字符串" 5> 1? 1:",无法由expr解析。