Анонимные функции Scala

Scala 函数Функции Scala

Синтаксис определения анонимной функции в Scala прост: левая часть стрелки — это список параметров, а правая часть — тело функции.

После использования анонимных функций наш код становится более лаконичным.

Следующее выражение определяет анонимную функцию, которая принимает входной параметр типа Int:

var inc = (x:Int) => x+1

Анонимная функция, определённая выше, на самом деле является сокращённой записью следующего синтаксиса:

def add2 = new Function1[Int,Int]{  
    def apply(x:Int):Int = x+1;  
} 

inc из приведённого выше примера теперь можно использовать как функцию следующим образом:

var x = inc(7)-1

Аналогично мы можем определить несколько параметров в анонимной функции:

var mul = (x: Int, y: Int) => x*y

mul теперь можно использовать как функцию следующим образом:

println(mul(3, 4))

Мы также можем не задавать параметры для анонимной функции, как показано ниже:

var userDir = () => { System.getProperty("user.dir") }

userDir теперь можно использовать как функцию следующим образом:

println( userDir() )

Пример

Пример

object Demo {
   def main(args: Array[String]) {
      println( "multiplier(1) value = " + multiplier(1) )
      println( "multiplier(2) value = " + multiplier(2) )
   }
   var factor = 3
   val multiplier = (i:Int) => i * factor
}

Сохраните приведённый выше код в файл Demo.scala и выполните следующие команды:

$ scalac Demo.scala
$ scala Demo

Вывод:

multiplier(1) value = 3
multiplier(2) value = 6

Scala 函数Функции Scala

Другие расширения