Mik*_*lls 2 tcl ternary-operator
简单的问题,TCL给了我"过早的表达结束",因为三元表达式的最后一个参数是一个空字符串.如果它是其他任何东西那么它的工作正常.我可以在这里使用空字符串吗?
set y 5
set x [expr ($y > 1) ? 1 : ""]
Run Code Online (Sandbox Code Playgroud)
你应该总是给expr
一个完整的表达式,用括号括起来作为参数.这避免了一大堆问题,包括这个问题.
expr {$y > 1 ? 1 : ""}
Run Code Online (Sandbox Code Playgroud)
问题是expr
连接其参数以获取表达式.调用concat $y > 1 ? 1 : ""
给出字符串"5> 1?1:",无法解析expr
.