Solidity documentで説明したように、2つの演算子||
と&&
は、一般的な短絡ルールを適用するので、それはです:
演算子|| & &は、共通の短絡規則を適用します。この は、式f(x)|| g(y)、f(x)がtrueと評価された場合、副作用があっても g(y)は評価されません。
共通の短絡ルールのため、ここで説明する動作は、他の多くの言語(JavaやScalaなど)とまったく同じです。 ScalaのREPLデモンストレーションは次のとおりです。
scala> def foo(x: Int): Boolean = { if (x >= 0) true else ??? }
foo: (x: Int)Boolean
scala> foo(10)
res0: Boolean = true
scala> foo(-10)
scala.NotImplementedError: an implementation is missing
at scala.Predef$.$qmark$qmark$qmark(Predef.scala:230)
at .foo(<console>:11)
... 32 elided
scala> if (false && !foo(-10)) "boo" else "bar"
res2: String = bar