2012-04-06 8 views
8

Ho visto un codice scala che assegna "_" a un campo di classe, cosa significa? Graziecosa significa assegnare "_" a un campo in scala?

private var tk: TaggedKey = _ 
+0

http://stackoverflow.com/questions/9581444/first-steps-into-scala/9612735#9612735 (Ho provato la panoramica di ~ 10 utilizzi di "_" nella lingua: –

risposta

20

Significa: assegnare valore predefinito. Il valore predefinito è definito come null, 0 o false a seconda del tipo di destinazione.

È descritto in 4.2 dichiarazioni variabili e definizioni del The Scala Language Specification:

Una definizione variabile var x : T = _ può apparire solo come membro di un modello. Lo introduce un campo mutabile con tipo T e un valore iniziale predefinito. Il valore di default dipende dal tipo di T come segue:

0 - se T è Int o uno dei suoi tipi subrange,

0L - se T è lunga,

0.0f - se T è Float ,

0.0d - se T è doppio,

false - se T è booleano,

() - se T è l'unità,

null - per tutti gli altri tipi T.