私は|=
Groovyで何をするかについての答えを探していました.上記の答えは正しいですが、私が見ている特定のコードを理解するのに役立ちませんでした.
特に、ブール変数 "|=" に適用すると、右側に真の式が初めて出現したときに TRUE に設定され、その後のすべての |= 呼び出しでその TRUE 値が保持されます。ラッチのように。
これを単純化した例を次に示します。
groovy> boolean result
groovy> //------------
groovy> println result //<-- False by default
groovy> println result |= false
groovy> println result |= true //<-- set to True and latched on to it
groovy> println result |= false
出力:
false
false
true
true
編集:なぜこれが役立つのですか?
さまざまなオブジェクトで何かが変更されたかどうかを知りたい状況を考えてみましょう。変更された場合は、変更のいずれかを通知します。したがって、hasChanges
ブール値を設定して |= diff (a,b)
、それを次に設定します|= dif(b,c)
。簡単な例を次に示します。
groovy> boolean hasChanges, a, b, c, d
groovy> diff = {x,y -> x!=y}
groovy> hasChanges |= diff(a,b)
groovy> hasChanges |= diff(b,c)
groovy> hasChanges |= diff(true,false)
groovy> hasChanges |= diff(c,d)
groovy> hasChanges
Result: true