これは、優れた1プログラマーのほとんどにとっては些細なことだと思いますが、私はtrue
and false
2を使用したプログラミングに慣れているため、0と1に遭遇したときに、どちらが真を意味し、どちらが偽を意味するかを思い出せません。
助言がありますか?
1良い:もちろん、Cを知っている人を意味します:)
2ご想像のとおり、私はJava開発者です;)
これは、優れた1プログラマーのほとんどにとっては些細なことだと思いますが、私はtrue
and false
2を使用したプログラミングに慣れているため、0と1に遭遇したときに、どちらが真を意味し、どちらが偽を意味するかを思い出せません。
助言がありますか?
1良い:もちろん、Cを知っている人を意味します:)
2ご想像のとおり、私はJava開発者です;)
ニーモニックは「これにはどれだけの真実があるのか」です。ゼロ整数はゼロトゥルースを意味します。それ以外はゼロ以外の真実です。:)
あなたが本当にそれで多くの問題を抱えているなら、私は言語を使ってそれを抽象化します.
例えばCで
#define TRUE 1
#define FALSE 0
一般的に、とにかくコード内に定数を配置することは避けます。
検討、
if(my_var == TRUE)
とは対照的に、
if(my_var == 1)
ただし、ここでも、正しいことをテストしていることを確認する必要があります。
if(my_var != FALSE)
より多くのケースをキャッチします。
乾杯!
キリスト教徒
机の横の壁にポストイットを貼っているだけの同僚がいます。
偽 = 0
真 != 0
"大野!"
(ああ == 0)
これは、シェル (sh、bash) では true が 0 で false が 1 であるという事実によって複雑になります。
$真 $ エコー $? 0 $偽 $ エコー $? 1
「nothing==false」、「something==true」を覚えておいてください
ニーモニックはありません。ハードウェアのバックグラウンドがある場合は、さらに複雑になります。しかし、プログラマーの場合は、次の質問をしてください。
ビットはセットされていますか?
答えは真か偽かのどちらかであり、結果です。ビットが設定されていないのは 0 (符号付き整数であっても) のみです。
-アダム
との両方にマップしOn
ますOff
。ほとんどのプログラマーは両方のセットを同じ方法でマップすると思います。1/trueは両方とも「オン」になり、0/falseは両方とも「オフ」になります。
言語によって異なります。
C :( 0 ? "never happens" : "false")
と( 1 ? "true" : "never happens")
Ruby、ELisp :0
との両方1
が true
bash (またはcmd.exe ):true
コマンド (coreutils から) は0
ステータス コードでfalse
終了し、コマンドはゼロ以外のステータス コードで終了します。
現代の人気のあるプログラミング言語の多くは、強力な C の遺産を持っているため、0
false および1
(またはゼロ以外の数値) を true と見なします。
ブール値にニーモニックを使用しないでください。言語のイディオムを使用して真偽をテストしてください。
愛 c - 嘘を増やすことはできないからです。:)