2012-02-28 13 views

risposta

7

Sotto il cofano, String* viene passato come Seq[String]. E 'tutto lo zucchero sintattico:

def blah(ss: String*) = {...} 
blah("Hi","there") 

è trasformato in

def blah(ss: Seq[String]) = {...} 
blah(Seq("Hi", "there")) 

e :_* solo significa "tenere lo zucchero, ho già quello che vi serve - un Seq!"

+0

non è un metodo di Seq, solo un altro zucchero, una specie di operatore speciale? :) – tuxSlayer

+1

@tuxSlayer - Esatto. ':' significa "è di tipo", come in 'val x: Int' (' x' è di tipo 'Int'). Quindi '_ *' dovrebbe essere una sorta di tipo (il tipo "So che vuoi varargs ma, guarda qui, ho già un Seq!"). Ok, non è un tipo reale, ma almeno lo zucchero è sintatticamente coerente. –

+0

Ok, grazie. Proprio oggi ho passato un po 'di tempo a cercare questo metodo nella libreria :) Ora è chiaro :) – tuxSlayer

Problemi correlati