¿Cómo declaro una variable genérica en Scala sin inicializarla (o inicializarla a cualquier valor)?Inicializando variables genéricas en Scala
def foo[T] {
var t: T = ???? // tried _, null
t
}
¿Cómo declaro una variable genérica en Scala sin inicializarla (o inicializarla a cualquier valor)?Inicializando variables genéricas en Scala
def foo[T] {
var t: T = ???? // tried _, null
t
}
def foo[T] {
var t: T = null.asInstanceOf[T]
t
}
Y, si no te gusta la ceremonia involucrado en eso, se puede facilítelo de esta manera:
// 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
}
No se puede no inicializar las variables locales, pero puede hacerlo para los campos:
scala> class foo[T] {
| var t: T = _
| }
defined class foo
¿sabe por qué está permitido para variables de clase pero no para variables de método? – IttayD
No, no sé. –