web-dev-qa-db-ja.com

ブール値の「真」、「偽」、トグルの用語はありますか?

技術会議で自分のコードを説明しようとしているとしましょう。

まず、ブール値foobartrueに設定します

そして

次に、ブール値foobarfalseに設定します

少し冗長に見えます。 foobarが切り替えられた場合、おそらく、

第三に、私はtogglefoobar

ここでの含意を通じて、そのブール値を知っています。だから私はできないはずです:

第四に、私はTruthify foobar

そして

5番目、私Falsify foobar

また、暗黙のうちに、ブール変数を扱っていることをリスナーに伝えますか?これには適切な用語がありますか?ありがとう。

26
Akiva
  • 値をtrueに設定することはsetting itです
  • Falseに設定するとclearing itになります。
  • 現在の値の変更はトグルです。

もちろん"trueに設定"および"falseに設定"を使用することもできます。

53
user253751

可能であれば、ブール値に焦点を合わせるのではなく、それが何を表すかを説明するようにしてください。いくつかの例:

  • サービス? started = true/falseの代わりにstart/stop
  • ゲームエンジンの特殊効果?オンオフ
  • 電気信号?セット/リセット
  • ...

これにより、より自然な言葉で話すことができます。したがって、会議では、「foobarを真実化し、それを改ざんする」のではなく、単に「foobarを起動して、それを停止する」(foobarが実際にサービスである場合)。

ブール値について話す必要がある場合は、「set/reset」、または「set to true」と「set to false」を使用できます。 「トグル」は、すべてのコンテキストで非常にいい音です。

そして、もしあなたが(それが何を意味するにせよ)ブール商店で働いているなら、あなたはおそらく辞書が提供するものよりも多くの単語を必要とするでしょう。その場合、trueifyとfalsifyは単に microspeak の一部です。

66
user44761

私は「設定」/「クリア」が好きですが、表現のあいまいさに注意してください。 Filipが指摘 のように、「ブール値変数を設定する」は、変数に値を書き込むことを意味すると解釈できます。しかし、「フラグを立てる」ことはより明確です。


関連用語:0 /非ゼロの整数を0/1の値に変換することは "booleanizing"と呼ばれます。

(true/false boolの代わりに)実際に0/1の値を整数として使用する場合は、そのWordを使用できます。それ以外の場合は、コンパイラーが実行する必要のある操作のコストについて話している場合にのみ表示されます。 (または、SIMD比較を使用して手動でベクトル化して、各ベクトル要素にすべて0または1のビットを生成する場合)。

CおよびC++では、boolは暗黙的に0または1として整数に変換でき、通常の実装ではboolは0または1の1バイト値として格納されます(ゼロ以外の値のみ)。効率的なa && b、しかし 実際には、多くのCコンパイラは最適化に失敗しています


bool booleanize(int a) { return a; }   // C++

その関数は、ほとんどのアーキテクチャーで複数の命令(retを含まない)にコンパイルされます。 (MIPSは興味深い例外であり、個別のフラグ/条件コードレジスタの代わりにレジスタへの比較命令を持っています)。 x86-64、MIPS、およびARM thumb 用のGodboltコンパイラエクスプローラでは、x86-64バージョンは次のようになります。

    test    edi, edi    # set flags according to   a & a
    setne   al
    ret                 # return value in AL, the low byte of RAX

申し訳ありませんが、このブール化の例は少し大きく/トピック外です!

2
Peter Cordes

Foobarをtrueに設定」と「Foobarをfalseに設定」は簡単で簡潔だと思います。私はそれらのフレーズに個別の単語があるとは信じていません。技術的かつ正確である必要がある場合、聴衆を混乱させるリスクを負うよりも、少し言葉を多用する方がよい場合があります。

0
Kevin