有人能解释一下这到底发生了什么吗?我现在还没有充分考虑到它:
val s = Seq(1D,2D,3D,4D)
case class WithUnit(value: Double, unit: String)
s map { WithUnit(_,"cm") } // works
s map { WithUnit(value = _ , unit = "cm") } // error: missing parameter type for expanded function ((x$2) => value = x$2)
Run Code Online (Sandbox Code Playgroud)
我想编译器不能推断参数类型,因为我写了参数的名称.但为什么不呢?它只是因为陈述参数的名称而不应该更加困难?!
谢谢!
可能重复:
List.filter中的下划线
这有效(按预期):
List(true, false, true).filter(_ == true).foreach(println)
Run Code Online (Sandbox Code Playgroud)
但我不能这样写:
List(true, false, true).filter(_).foreach(println)
Run Code Online (Sandbox Code Playgroud)
为什么?
scala ×2