Latest web development tutorials

Scala Funkcja połączeń według nazwy

funkcja Scala funkcja Scala

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.

funkcja Scala funkcja Scala