相关疑难解决方法(0)

命名参数中的下划线

有人能解释一下这到底发生了什么吗?我现在还没有充分考虑到它:

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)

我想编译器不能推断参数类型,因为我写了参数的名称.但为什么不呢?它只是因为陈述参数的名称而不应该更加困难?!

谢谢!

scala

13
推荐指数
1
解决办法
2478
查看次数

布尔谓词的缩写形式

可能重复:
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
推荐指数
1
解决办法
387
查看次数

标签 统计

scala ×2