Phi*_*l H 33 scala pattern-matching
我有一个功能:
def func(a: int, b: int, c: double): int
Run Code Online (Sandbox Code Playgroud)
我想要匹配各种可能的场景
c0,返回b-ac> 9,返回0a=b返回0依此类推,在做一些更复杂的逻辑之前,如果没有满足上述要求.
我必须先单独匹配c,还是可以匹配a,b,c,比如_,_,0?
ten*_*shi 66
您可以模式匹配所有描述的情况,如下所示:
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
}
Run Code Online (Sandbox Code Playgroud)
从我对 Easy Angel 的回答的评论来看,我仍然有这样的感觉
if (c == 0)
b -a
else if (c > 9)
0
else if (a == b)
0
else
1 // your logic here
Run Code Online (Sandbox Code Playgroud)
更清楚了。基本上是因为这里实际上没有任何模式可以匹配。
| 归档时间: |
|
| 查看次数: |
20970 次 |
| 最近记录: |