Comment déclarer une variable générique dans Scala sans l'initialiser (ou initialiser à une valeur quelconque)?Initialisation de variables génériques dans Scala
def foo[T] {
var t: T = ???? // tried _, null
t
}
Comment déclarer une variable générique dans Scala sans l'initialiser (ou initialiser à une valeur quelconque)?Initialisation de variables génériques dans Scala
def foo[T] {
var t: T = ???? // tried _, null
t
}
def foo[T] {
var t: T = null.asInstanceOf[T]
t
}
Et, si vous ne l'aimez pas la cérémonie impliqué dans cela, vous pouvez le faciliter de cette façon:
// 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
}
Vous ne pouvez pas initialiser les variables locales, mais vous pouvez le faire pour les champs:
scala> class foo[T] {
| var t: T = _
| }
defined class foo
savez-vous pourquoi cela est autorisé pour les variables de classe mais pas pour les variables de méthode? – IttayD
Non, je ne sais pas. –