我有这段代码可以验证true或false值的语法,例如1为true,0为false,如果其他内容则出错:
itcl::body boolean::validateSyntax {} \
{
if {![string equal [getData] "1"] && \
![string equal [getData] "0"] && \
![string equal [getData] "true"] && \
![string equal [getData] "false"]} \
{
errorHandle-errMsg \
"Invalid boolean value."
}
}
请告诉我是否有其他方法可以完成此操作,一些代码逻辑会使用“getData”检查0或1的真或假,并将其他情况作为错误处理。
答案 0 :(得分:2)
如果你愿意接受Tcl的布尔概念,即0,false,no或off ==> false和1,true,yes或on ==>是的,然后string is boolean
将执行测试。
答案 1 :(得分:1)
可以使用
if {[getdata] ni {0 1 true false}} ...
此代码完全符合问题中的代码。 andy mango的答案中的string is boolean
命令更加灵活。
文档: if, ni (operator), string