funzione di Scala chiamata per nome
Scala interprete in due modi parametri della funzione di analisi (argomenti delle funzioni) quando:
- Per una chiamata (call-by-value): valore dell'espressione parametro viene prima calcolato e poi applicato alle funzioni interne;
- Per nome di chiamata (call-by-name): L'espressione parametro non viene applicato direttamente al calcolo di funzioni interne
Prima di entrare all'interno della funzione viene chiamata per valore è stato calcolato sul valore dell'espressione parametro, e chiamare per nome l'espressione argomento è un valore calcolato all'interno della funzione.
Questo provoca un fenomeno, chiamando ciascuno per nome quando l'interprete sarà calcolata una volta che il valore dell'espressione da utilizzare.
object Test { def main(args: Array[String]) { delayed(time()); } def time() = { println("获取时间,单位为纳秒") System.nanoTime } def delayed( t: => Long ) = { println("在 delayed 方法内") println("参数: " + t) t } }
Esempi di quanto sopra, abbiamo dichiarare un metodo ritardata chiamato per nome per impostare il nome della variabile e immettere dati utilizzando la => simbolo. L'attuazione del codice di cui sopra, i risultati di output sono i seguenti:
$ scalac Test.scala $ scala Test 在 delayed 方法内 获取时间,单位为纳秒 参数: 241550840475831 获取时间,单位为纳秒
Esempi del metodo per stampare un ritardo informazioni che indica il metodo, metodo di stampa e quindi ritardano il valore ricevuto, e infine tornare a t.