为什么初始化需要对象类型:
为什么要编译:
var imp : String = _
但这不是:
var imp = _
错误:unbound placeholder parameter
是因为在初始化时不知道对象类型吗?
答案 0 :(得分:5)
当您编写var imp : String = _
时,Scala知道imp
是一个字符串,即使它没有值(它将其初始化为null
)。
当您编写var imp = _
时,Scala不知道该类型是什么。如果您明确指定它或者给出可以推断它的初始值,它只能知道预期的类型。
答案 1 :(得分:3)
是 - 这是因为在声明/初始化时间内不知道对象类型。