1

我有这段代码可以验证 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 的真假,并将其他情况作为错误处理。

4

2 回答 2

2

如果您愿意接受 Tcl 的布尔概念,即 0、false、no 或 off ==> false 和 1、true、yes 或 on ==> true,那么string is boolean将执行测试。

于 2016-12-15T21:09:16.157 回答
1

一个可以使用

if {[getdata] ni {0 1 true false}} ... 

此代码与问题中的代码完全相同。安迪芒果答案中的string is boolean命令要灵活得多。

文档: if , ni (operator) , string

于 2016-12-16T06:28:02.780 回答