2009-10-19 10 views

Répondre

13
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 
    } 
8

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 
+2

savez-vous pourquoi cela est autorisé pour les variables de classe mais pas pour les variables de méthode? – IttayD

+0

Non, je ne sais pas. –