为什么val x: Int = _
无法编译但var x: Int = _
无法编译?
我得到了error: unbound placeholder parameter
。
答案 0 :(得分:13)
在这种情况下,_
意味着"我将在稍后对其进行初始化,只需在此期间填写合理的默认值"。由于您无法重新分配val
,因此这没有用。
对于相同的功能 - 获得合理的默认值 - 对于val
,您可以使用
val x: Int = null.asInstanceOf[Int]
答案 1 :(得分:2)
您无法重新分配vals值,因此您无法使用_(init为规定类型的默认值)。但是你可以重新分配一个vars值,所以用一些默认值初始化它是合乎逻辑的,就像在Java中一样