これに似たコードを書くことは可能です。次の 2 つの点に注意してください。
- Scala 中置記法は pattern
obj method param method param method param...
に従うため、メソッド名のキーワードを適切な場所に配置する必要があります。
- 演算子の優先順位は、あなたを助けたり妨げたりすることができます。たとえば、
<=
は よりも優先and
されます。これは、表示したスニペットに役立ちます。ドット表記も同様です。オブジェクトに続く括弧も、そのオブジェクトの apply メソッドとして優先されます。たとえば、Specs2 はこれをうまく利用しています。
それで、これに戻ります:
permit if param.startsWith("xyz") and CPU <= 50 { ... }
次のように分割できます。
permit // object
if // method, though "if" is a reserved word, so you have to pick something else
param.startsWith("xyz") // param, because of higher precedence
and // method
CPU <= 50 // param, because of higher precedence
// method needed here!
{ ... } // param
したがって、微調整を加えれば、ビルダー パターンがここで機能するように見えます。and
to (または any )のパラメーターor
はおそらく名前によるものになるため、結果が前者の条件によって定義されている場合、後者の条件の評価を避けることができます。