プログラム開発では、ビット操作を通じて変数に複数の状態を格納できます。

プログラム開発では、ビット操作を通じて変数に複数の状態を格納できます。

プログラム開発では通常、さまざまな状態が存在します。各状態を変数に格納すると、場合によっては適切ではない場合があります。たとえば、ゲーム開発では、UI オブジェクトの可視性を設定する必要があり、さまざまな状態が存在します。条件は、オブジェクトを非表示にしたり表示したりするために使用されます。現時点では、次のコードのように、ビット演算を使用してさまざまな状態を保存することは非常に良い選択です。

class HiddenReason:
  REASON1 = 1 << 0
  REASON2 = 1 << 1
  REASON3 = 1 << 2

class Object:
  def __init__(self):
    self.state = 0
    self.visible = True

  def addHiddenReason(self, reason):
    self.state |= reason
    self.updatevisible()

  def removeHiddenReason(self, reason):
    self.state &= ~reason
    self.updatevisible()

  def updatevisible(self):
    self.visible = not self.state


a = Object()
print(a.visible)  # True
a.addHiddenReason(HiddenReason.REASON1)
print(a.visible)  # False
a.addHiddenReason(HiddenReason.REASON2)
print(a.visible)  # False
a.removeHiddenReason(HiddenReason.REASON1)
print(a.visible)  # False
a.removeHiddenReason(HiddenReason.REASON2)
print(a.visible)  # True

このコードは、複数の状態を 1 つの変数 state に格納するもので、非常に便利です。この方法は他のプログラム開発でも非常に一般的です。

おすすめ

転載: blog.csdn.net/qq_41841073/article/details/131640047