728x90
반응형
후행 람다 문법이란?
일반적으로 kotlin에서 함수를 정의하고 사용하는 방식은 다음과 같다.
fun exampleFunc(param1: String, param2: String){
println("Param1: $param1")
}
여기서 함수의 매개변수로 함수를 넣을 수 있는데, 이때 사용하는 함수는 람다 표현식으로 넣어주게 된다. 예시는 다음과 같다.
fun exampleFunction(param1: String, action: () -> Unit) {
println("Param1: $param1")
action()
}
이와 같이 함수의 마지막 매개변수가 람다 표현식일 때, kotlin에서는 람다를 소괄호 밖으로 뺄 수 있는 문법을 제공한다.
이 문법을 후행 람다 문법이라 하며, 이를 통해 코드의 가독성이 좋아지고 깔끔해진다.
후행 람다 문법 사용하기
위의 함수에서 action parameter는 람다를 받을 수 있다.
일반적으로 람다를 사용한다면, 다음과 같이 쓸 수 있다.
exampleFunction("Hello", { println("This is a lambda!") })
이렇게 쓰면 람다가 복잡해질수록 코드의 가독성이 떨어질 것이다.
따라서, 다음과 같이 후행 람다 문법을 적용하여 간단하게 사용할 수 있다.
exampleFunction("Hello") {
println("This is a lambda!")
}
후행 람다를 사용하면 이렇게 코드 가독성이 좋아지고, 특히 DSL(Domain-Specific-Language) 스타일로 작성할 수 있으며,
안드로이드 개발에서 setOnClickListener, Coroutine, LiveData, 콜백 함수 등에서 많이 활용된다.
ex1) setOnClickListener
button.setOnClickListener {
Toast.makeText(this, "Button clicked!", Toast.LENGTH_SHORT).show()
}
후행 람다를 사용하여 버튼 클릭 리스너를 깔끔하게 작성할 수 있다.
ex2) Coroutine
GlobalScope.launch {
delay(1000)
println("Coroutine 실행 완료!")
}
마찬가지로 launch의 경우에도 후행 람다를 사용하면 () 소괄호 없이 깔끔하게 사용 가능하다.
728x90
반응형
'CS > Kotlin' 카테고리의 다른 글
[Kotlin 문법] 11. 입출력 (2) - 파일 입출력 (1) | 2025.02.11 |
---|---|
[Kotlin 문법] 10. 입출력 (1) - 콘솔 입출력, 문자열 포맷팅(출력 형식 지정) (0) | 2025.02.11 |
null safety - "?" 문법 (0) | 2025.01.08 |
[Kotlin 문법] 9. Null Safety (0) | 2024.06.13 |
[Kotlin 문법] 8. Class (1) | 2024.06.12 |