私には機能があります:
def func(a: int, b: int, c: double): int
そして、私はさまざまな可能なシナリオに一致させたい
c
が0の場合は常にb-a
を返しますc
> 9、0を返すa=b
が0を返す場所など、上記のいずれも満たされない場合は、より複雑なロジックを実行する前に。
最初にcを個別に照合する必要がありますか、それとも_,_,0
のようにa、b、cで照合できますか?
次のように、説明されているすべてのケースをパターンマッチングできます。
def func(a: Int, b: Int, c: Double) = (a, b, c) match {
case (a, b, 0) => b - a
case (a, b, c) if c > 9 || a == b => 0
case _ => 1 // add your logic here
}
私のコメントからイージーエンジェルの答えに続いて、私はまだこれを感じています
if (c == 0)
b -a
else if (c > 9)
0
else if (a == b)
0
else
1 // your logic here
より明確です。基本的に、ここで照合するパターンは実際にはないからです。