How do I declare a generic variable in Scala without initializing it (or initializing to any value)?
def foo[T] {
var t: T = ???? // tried _, null
t
}
You can't not initialize local variables, but you can do so for fields:
scala> class foo[T] {
| var t: T = _
| }
defined class foo
def foo[T] {
var t: T = null.asInstanceOf[T]
t
}
And, if you don't like the ceremony involved in that, you can ease it this way:
// 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
}