Ho trovato che Scala ha sempre una "spiegazione naturale" per qualsiasi cosa. Sempre qualcosa come "ohh, ma è solo una funzione chiamata su questo e quell'oggetto con questo e quel parametro". In un certo senso, nulla è veramente magico per i compilatori, così come lo conosciamo da altre lingue.Scala "<-" per comprensione
La mia domanda è sul <- operatore utilizzato nel codice seguente:
for(i <- 0 to 10) println(i)
In questo esempio posso vedere che sia riscritto a qualcosa di simile:
0.to(10).foreach((i:Int)=>println(i))
ma questo non spiega come lo i sia stato trasportato nell'anonimo funzione ymous all'interno della funzione foreach. Nel punto in cui scrivi i non è un oggetto e non è ancora una variabile dichiarata. Allora, cos'è e come viene trasportato all'interno di foreach?
La mia ipotesi è che ho finalmente scoperto qualcosa che è in realtà compilatore magia
Grazie per il vostro tempo.
Per chiarire, la mia domanda è: come fa il < - lavoro dell'operatore in 1 ° riga di codice dal momento che non è un oggetto su cui può essere definito come una funzione.
Questa sembra essere la risposta. Ti suggerirei di documentarlo se possibile, è un po 'strano in questo momento. – Felix
@Felix: è documentato nelle specifiche. E praticamente ogni libro Scala disponibile sul mercato lo copre. – missingfaktor
oh sì, non ho ancora ricevuto un libro. in attesa del libro definitivo 2.8 – Felix