遅延演算子
遅延評価とは、式の結果が必要になるまでその式の実行を遅らせることだ。遅延評価は、一部のプログラミング言語の基本的な機能のひとつだ。
当然、この遅延により、結果が必要とならない場合、プログラムの実行速度が向上する可能性がある。
-
||(or)演算子:最初の式がfalseの場合にのみ、2番目の式が評価される。anExpression()の結果がtrueである場合、||式の式の結果は必然的にtrueとなる。||式の式の結果を決定するために2番目の式を評価する必要がなくなったため、2番目の式は評価されない。 -
&&(and)演算子:2番目の式は、1番目の式がtrueの場合にのみ評価される。anExpression()の結果がfalseの場合、&&式の値は必然的にfalseとなるため、2番目の式は評価されない。 -
?:(三項)演算子: 条件がtrueであるかfalseであるかに応じて、1番目の式または2番目の式が評価される。
これらの演算子の遅延は、パフォーマンスだけでなく、式の一方を評価するとエラーになる場合もある。
例えば、以下の条件Aチェックは文字列が空の場合、エラーになる。
sの最初の要素にアクセスするには、文字列にそのような要素が確実に存在することを確認する必要がある。そのため、次の条件チェックでは、エラーになる可能性のある論理式を&&演算子の右側に移動し、安全に評価できる場合にのみ評価されるようにしている。
遅延評価は、関数ポインタ、デリゲート、および範囲を使用しても実現できる。これらについては、後の章で説明する。