함수 리터럴 : (Int)->Unit 은 매개변수가 Int타입이고, 반환타입이 Unit인 함수를 저장할 수 있는 타입을 뜻함.
람다식 : {매개변수 -> 반환 값} 형태를 이야기 함.
fun main(args: Array<String>)
{
val instantFunc: (Int) -> Unit
instantFunc = { number: Int ->
println("Hello $number")
}
instantFunc(33)
instantFunc.invoke(33)
}
위의 예제 코드에서 .invoke라는 함수가 있는데, 함수 타입의 변수를 해당 함수를 통하여, 호출해도 된다.
익명 함수 : 람다 식으로 표기된 함수 리터럴을 함수 이름이 없는 함수로 다르게 표현할 수 있다. 이를 익명함수라 한다.
fun{value type}:{return type}
fun main(args: Array<String>)
{
val instantFunc: (Int) -> Unit
instantFunc = fun(number: Int): Unit
{
println("Hello $number")
}
instantFunc(33)
instantFunc.invoke(33)
}
it 식별자 : 람다식의 매개 변수가 하나일 경우, 매개 변수 선언을 생략할 수 있다. 그리고 그 매개 변수를 사용하고 싶을 때 사용되는 키워드이다.
fun main(args: Array<String>)
{
val instantFunc: (Int) -> Unit = {
println("Hello $it")
}
instantFunc(33)
}
참고 : 초보자를 위한 Kotlin 200제 라는 책을 기반으로 공부 내용을 정리하였습니다
'Kotlin' 카테고리의 다른 글
[Kotlin] in/out 키워드 및 .. 연산자와 범위 표현식 (0) | 2020.09.06 |
---|---|
[Kotlin] Reified 타입 매개 변수 (0) | 2020.09.06 |
[Kotlin] Sealed Class (0) | 2020.09.01 |
[Kotlin] 확장함수 / 확장 프로퍼티 (0) | 2020.09.01 |
[Kotlin] is 연산자 (0) | 2020.09.01 |