
✅ 람다식의 선언과 할당
- 일반변수에 람다식 할당 : {람다에 사용할 매개변수 -> 할당할 식}
var multi = { a: Int, b: Int -> a*b}
- 아니면, 아래 예시처럼 식 내부 매개변수의 자료형을 생략하고 식 앞에 선언 자료형을 명시해도 됨
var multi(a:Int, b:Int) -> Int = { a,b -> a*b }
- 변수 안에 익명함수를 정의하였기 때문에, 함수처럼 사용 가능함. 변수 뿐만 아니라 함수의 인자나 반환값에도 사용 가능함.
multi(10,20)
✅ 람다식의 다양한 표현 방법
var multi2:(Int, Int) -> Int = {x:Int, y:Int
-> println("x*y")}
x*y
- 생략 없는 전체 표현
var multi:(Int, Int) -> Int = { a: Int, b: Int -> a*b}
- 선언 자료형 생략
var multi = { a: Int, b: Int -> a*b}
- 람다식 매개변수 자료형의 생략
var multi:(Int,Int) -> Int = { a: Int, b: Int -> a*b}
✅ 반환 자료형이 없는 표현
var love: () -> Unit = {println("Eiji")}
- 인자 자체가 존재하지 않으면 선언 자료형을 비어놓게 할 수 있음. 또한 표현식(->) 역시 지울 수 있음.
✅ 람다식 안에 또 다른 람다식
var nestedLambda: ()-> ()->Unit = {{println("nested")}}
- 첫번째 람다식 안에 다른 람다식이 들어있는 형태
- () - > 첫번째 람다 () -> 두번째 람다식