EnjoyLife

함수의 마지막 인자로 람다를 쓰는 이유 본문

안드로이드 개발/개발팁

함수의 마지막 인자로 람다를 쓰는 이유

Aiden96 2023. 11. 1. 23:56

동일한 결과가 나오지만   함수의 마지막 인자로 람다식을 적용한 코드가  더 간결함을 느낄수 있다. 

람다코드의 매력은 함수의 마지막 인자가 람다식이면  중괄호{ } 로 표현하게 돼 소스가 간결해진다. 

반환형이 Unit 으로 한 이유는  함수를 호출하기 위함이다. 

반환값이 있으면 이방법을 쓸 이유가 없다. 

 

일반코드 

fun printNumbers(numbers: List<Int>) {
    for (number in numbers) {
        println(number)
    }
}

fun main() {
    val numbers = listOf(1, 2, 3)

    printNumbers(numbers)
}

람다코드 

fun printNumbers(numbers: List<Int>, action: (Int) -> Unit) {
    for (number in numbers) {
        action(number)
    }
}

fun main() {
    val numbers = listOf(1, 2, 3)

    printNumbers(numbers) { number ->
        println(number)
    }
}

 

출력코드: 

1

2

3

 

우린 알게 모르게 쓰고 있었다. 이 함수또한 마지막 인자가  (Int)->Unit 인 람다식이다. 

 

findViewById<Button>(R.id.button).setOnClickListener {
            showToast("버튼이 클릭되었습니다.")
        }