English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

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 메인(args: 배열[ 문자열]) {
      println( "multiplier(1) 값 = " +  multiplier(1) )
      println( "multiplier(2) 값 = " +  multiplier(2) )
   }
   var factor = 3
   val multiplier = (i:Int) => i * factor
}

위 코드를 Demo.scala 파일에 저장하고 다음 명령어를 실행하세요:

$ scalac Demo.scala
$ scala Demo

출력 결과는 다음과 같습니다:

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

Scala 함수