Scala Funkcja połączeń według nazwy
Scala interpreter dwojako parametry funkcji analitycznych (argumenty funkcji), gdy:
- W przypadku połączenia (call-by-value): wartość parametru wyrażenie obliczane jest najpierw a następnie zastosowane do funkcji wewnętrznych;
- Poprzez wywołanie nazwy (call-by-name): Wyrażenie parametr nie jest bezpośrednio stosowane do obliczania funkcji wewnętrznych
Przed wejściem wewnątrz funkcji jest nazywany przez wartość została obliczona na podstawie wartości wyrażenia parametrów i wywołać przez ekspresję nazwę argumentem jest wartość obliczona w funkcji.
Powoduje to zjawisko, nazywając po imieniu, gdy interpreter będzie obliczana raz wartość wyrażenia użyć.
object Test { def main(args: Array[String]) { delayed(time()); } def time() = { println("获取时间,单位为纳秒") System.nanoTime } def delayed( t: => Long ) = { println("在 delayed 方法内") println("参数: " + t) t } }
Przykłady powyższe, możemy zadeklarować opóźniony metodę o nazwie po imieniu, aby ustawić nazwę zmiennej i wpisać za pomocą => symbol. Realizacja powyższego kodu, wyniki wyjściowe są następujące:
$ scalac Test.scala $ scala Test 在 delayed 方法内 获取时间,单位为纳秒 参数: 241550840475831 获取时间,单位为纳秒
Przykłady sposobu drukowania informacji o opóźnieniu wskazujące, metoda drukowania i następnie opóźnić otrzymaną wartość, a wreszcie powrócić do t.