2009-10-19 17 views

Odpowiedz

13
def foo[T] { 
    var t: T = null.asInstanceOf[T] 
    t 
} 

A jeśli nie podoba ci się, że udział w ceremonii, można złagodzić to w ten sposób:

// 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

Nie nie może zainicjować zmienne lokalne, ale można to zrobić dla pól:

scala> class foo[T] { 
    | var t: T = _ 
    | } 
defined class foo 
+2

czy wiesz, dlaczego dozwolone są zmienne klasy, ale nie zmienne metody? – IttayD

+0

Nie, nie wiem. –

Powiązane problemy