Анонимные функции 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() )
Пример
Пример
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