Ответ 1
Вы можете сопоставить все описанные случаи следующим образом:
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
}
У меня есть функция:
def func(a: int, b: int, c: double): int
И я хочу сопоставить различные возможные сценарии
c
равно 0, верните b-a
c
> 9, верните 0a=b
возвращает 0И так далее, прежде чем делать более сложную логику, если ни одно из вышеперечисленных не выполняется.
Нужно ли сначала сопоставлять c отдельно, или я могу сопоставлять по a, b, c, например, _,_,0
?
Вы можете сопоставить все описанные случаи следующим образом:
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
}
Следуя моим комментариям к запросу Easy Angel, я все еще чувствую это
if (c == 0)
b -a
else if (c > 9)
0
else if (a == b)
0
else
1 // your logic here
понятнее. В основном потому, что на самом деле нет никакого шаблона.