6.2.5. if 演算子の出力の理解
if 演算子もブール値を返します。これは、直感的に理解しやすいものです。ただし、以下の例では、if の直感的な使用が誤解を招く可能性がある場合を示しています。
例6.3 if 演算子の出力の誤解
このステートメントは、pkgB がインストールされていない場合には真になります。ただし、このステートメントを、デフォルトの結果が偽であるところで使用すると、事が複雑になります。
Requires: (pkgA if pkgB)
このステートメントは、pkgB がインストールされていて、pkgA がインストールされていない場合に競合します。
Conflicts: (pkgA if pkgB)
そのため、以下を使用することが推奨されます。
Conflicts: (pkgA and pkgB)
if 演算子が or にネストされている場合も同様です。
Requires: ((pkgA if pkgB) or pkgC or pkg)
pkgB がインストールされていない場合に if が真となるため、用語が完全に真となります。pkgB がインストールされている場合にのみ pkgA が役立つ場合は、代わりに and を使用します。
Requires: ((pkgA and pkgB) or pkgC or pkg)