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 の true または false をチェックし、その他のケースをエラーとして処理するコード ロジックなど、これを実行できる他の方法があれば教えてください。

4

2 に答える 2

1

使用できます

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

このコードは、問題のコードとまったく同じことを行います。andy mango's answerのstring is booleanコマンドは、はるかに柔軟です。

ドキュメンテーション: if , ni (演算子) , 文字列

于 2016-12-16T06:28:02.780 に答える