Latest web development tutorials

Scala fungsi panggilan dengan nama

fungsi scala fungsi scala

Scala interpreter dalam dua cara parameter fungsi analitik (argumen fungsi) saat:

  • Untuk panggilan (call-by-nilai): nilai ekspresi parameter pertama dihitung dan kemudian diterapkan pada fungsi internal;
  • Dengan nama panggilan (call-by-nama): Ekspresi parameter tidak langsung diterapkan pada perhitungan fungsi internal

Sebelum memasuki dalam fungsi disebut dengan nilai telah dihitung pada nilai ekspresi parameter, dan memanggil dengan ekspresi nama argumen adalah nilai yang dihitung dalam fungsi.

Hal ini menyebabkan fenomena, memanggil masing-masing dengan nama ketika penafsir akan dihitung setelah nilai ekspresi untuk menggunakan.

object Test {
   def main(args: Array[String]) {
        delayed(time());
   }

   def time() = {
      println("获取时间,单位为纳秒")
      System.nanoTime
   }
   def delayed( t: => Long ) = {
      println("在 delayed 方法内")
      println("参数: " + t)
      t
   }
}

Contoh di atas, kita mendeklarasikan metode tertunda disebut dengan nama untuk menetapkan nama variabel dan mengetik menggunakan => simbol. Pelaksanaan kode di atas, hasil output adalah sebagai berikut:

$ scalac Test.scala 
$ scala Test
在 delayed 方法内
获取时间,单位为纳秒
参数: 241550840475831
获取时间,单位为纳秒

Contoh metode untuk mencetak informasi keterlambatan menunjukkan metode, metode pencetakan dan kemudian menunda nilai yang diterima, dan akhirnya kembali ke t.

fungsi scala fungsi scala