【发布时间】:2016-10-03 20:15:09
【问题描述】:
为什么不能在 lambda 函数中包含 case 语句?我的代码看起来像
def f(list:List[String]):List[Int] = list.map( _ match{ case _.length > 1 => _.length else 1})
input
"mike"
"tom"
"t"
" "
output
4
3
1
1
如您所见,我正在尝试在 lambda 中做一个案例。我用语法尝试了很多方法。
【问题讨论】:
-
您的 3 个通配符 (
_) 应该是什么?同一个参数? 3个不同的参数?如果您只有两种可能性,而且您没有匹配任何模式,为什么要使用match而不是if? -
也许如果你能把你想要的代码写成一个完整的函数,你想让你的 lambda 做什么会更清楚。
标签: list scala collections