【发布时间】:2009-10-19 20:08:58
【问题描述】:
如何在 Scala 中声明一个泛型变量而不初始化它(或初始化为任何值)?
def foo[T] {
var t: T = ???? // tried _, null
t
}
【问题讨论】:
标签: scala variables initialization
如何在 Scala 中声明一个泛型变量而不初始化它(或初始化为任何值)?
def foo[T] {
var t: T = ???? // tried _, null
t
}
【问题讨论】:
标签: scala variables initialization
def foo[T] {
var t: T = null.asInstanceOf[T]
t
}
而且,如果您不喜欢其中涉及的仪式,您可以这样简化:
// Import this into your scope
case class Init()
implicit def initToT[T](i: Init): T = {
null.asInstanceOf[T]
}
// Then use it
def foo[T] {
var t: T = Init()
t
}
【讨论】:
你不能不初始化局部变量,但你可以对字段这样做:
scala> class foo[T] {
| var t: T = _
| }
defined class foo
【讨论】: