English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Синтаксис определения анонимных функций в 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