遅延演算子

遅延評価とは、式の結果が必要になるまでその式の実行を遅らせることだ。遅延評価は、一部のプログラミング言語の基本的な機能のひとつだ。

当然、この遅延により、結果が必要とならない場合、プログラムの実行速度が向上する可能性がある。

遅延評価と似た概念として、以下の演算子の短絡動作がある。

これらの演算子の遅延は、パフォーマンスだけでなく、式の一方を評価するとエラーになる場合もある。

例えば、以下の条件Aチェックは文字列が空の場合、エラーになる。

dstring s;
// ...
if (s[0] == 'A') {
    // ...
}
D

sの最初の要素にアクセスするには、文字列にそのような要素が確実に存在することを確認する必要がある。そのため、次の条件チェックでは、エラーになる可能性のある論理式を&&演算子の右側に移動し、安全に評価できる場合にのみ評価されるようにしている。

if ((s.length >= 1) && (s[0] == 'A')) {
    // ...
}
D

遅延評価は、関数ポインタ、デリゲート、および範囲を使用しても実現できる。これらについては、後の章で説明する。