CS/Kotlin

[Kotlin 문법] 12. 후행 람다 문법

졔졔311 2025. 3. 5. 15:45
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
반응형