大家好,我正在尝试理解scala中的符号"_",它看起来像一个通配符,但我不明白为什么在给定的场景中.
var l = List("a","b" ,"c")
// Works "s" works as a variable.
l.foreach( s =>
if(s=="a"){
print(s)
}
)
// Works _ takes the place of "s"
l.foreach(
print(_)
)
//So the doubt is whether "_" is a wildcard that does not work well.
l.foreach(
if(_=="a"){
print(_)
}
)
Run Code Online (Sandbox Code Playgroud)
"_"应该像变量一样s,但为什么不呢?
om-*_*nom 12
匿名函数中的通配符以第n个_被视为第n个参数的方式扩展.你使用它的方式使得scala编译器认为你实际上有类似的东西
l.foreach((x,y) =>
if(x=="a"){
print(y)
}
)
Run Code Online (Sandbox Code Playgroud)
这显然是无效的.
| 归档时间: |
|
| 查看次数: |
306 次 |
| 最近记录: |