パイプ等号演算子 (=) とは何ですか?
オープンソースのパイプ等号演算子 (|=) に遭遇した開発者ライブラリコードはその意味について疑問に思うかもしれません。この演算子は、論理割り当てと間違われることがよくありますが、重要なビット単位の OR 演算を保持します。
ビット単位 OR について
パイプ等価演算子 |= は = と同じように機能します。以下のコードでは、 |= 演算子は、defaults の元の値と定数 DEFAULT_SOUND を組み合わせています。
notification.defaults |= Notification.DEFAULT_SOUND;
この演算は次と同等です。
notification.defaults = notification.defaults | Notification.DEFAULT_SOUND;
は、ビット単位の OR 演算子を示します。
定数マスクのビット単位 OR
この例では、定数 DEFAULT_SOUND、DEFAULT_VIBRATE、および DEFAULT_LIGHTS は 2 の累乗です。
DEFAULT_SOUND = 1 DEFAULT_VIBRATE = 2 (1 << 1) DEFAULT_LIGHTS = 4 (1 << 2)
これにより、ビットごとの OR を使用してフラグを追加または削除できるようになります。例:
int myFlags = DEFAULT_SOUND | DEFAULT_VIBRATE; // 001 | 010 = 011
別のフラグの追加:
myFlags |= DEFAULT_LIGHTS;
は、単に新しいフラグを追加します。
フラグの存在のテスト
ビットごとの AND 演算子 (&) は、フラグの存在をテストします。
boolean hasVibrate = (DEFAULT_VIBRATE & myFlags) != 0;
結果がゼロ以外の場合、フラグが設定されます。
以上がプログラミングにおけるパイプ等号 (=) 演算子の目的は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。