안녕하세요. 개발자입니다.
오늘은 코틀린에서 사용하는 람다 함수를 다뤄보겠습니다.
Kotlin에서의 함수
반환 자료형 생략 및 블록, return 생략 가능
fun add(x:Int, y:Int) : Int{
return x+y
}
fun add(x:Int, y:Int) = x+y
람다함수
익명 함수를 간결하게 표현할 수 있는 방법
val add:(Int, Int) -> Int = {x:Int, y:Int -> x+y }
val add = {x:Int, y:Int -> x+y }
println(add(10,20))
함수를 타입처럼 사용할 수 있습니다. 또한 인자로 전달할 수 있습니다.
코틀린의 람다식
- 형식 : { 매개변수 -> 함수내용 }
- 람다 함수는 항상 { }로 감싸서 표현
- 인수 목록을 나열하고 -> 이후에 본문 위치
- 인자는 ()로 감싸지 않음
- 인자는 형식 추론이 가능하므로 타입 생략 가능
- 함수 반환값은 함수 내용의 마지막 표현식
- 변수에 람다식을 저장하고, 변수를 일반 함수처럼 사용
변수에 대입하지 않으면 이후 람다 함수를 사용할 수 없음
람다 함수 뒤에 ()를 추가하여 함수 호출
Run() 함수에 대입해도 바로 함수가 호출되어 실행
람다식이 유일한 인자일 경우 () 생략가능
람다함수 실습 코드
fun main() {
val add:(Int, Int) -> Int = {x:Int, y:Int -> x + y} //익명함수를 람다식으로 표현
val add2:(int, Int) -> Int = {x, y -> x+y} //위와 같은 함수. 타입 명시의 차이
println(add(1,2))
println(add2(10,20))
val add3:(Int, Int) -> Unit = {x:Int, y:Int -> println(x+y)}
add3(10,20)
println({x:Int, y:Int ->x+y}(1,2)) //동일한 결과를 출력
}
'Kotlin > 강의' 카테고리의 다른 글
[Kotlin]SAM(Single Abstract Method) 변환 (0) | 2020.03.30 |
---|---|
[Kotlin]꼬리 재귀 함수(Tail Recursive Function) (0) | 2020.03.30 |
댓글