코틀린 람다 함수(lambda function)는 익명 함수로, 코드 블록을 간결하게 표현할 수 있는 방법입니다. 람다 함수는 주로 고차 함수의 매개변수로 전달되거나, 함수형 인터페이스의 인스턴스를 생성할 때 사용됩니다.
람다 함수의 기본 구조
// 매개변수 없는 람다 함수
val lambda1: () -> Unit = { println("Hello, World!") }
// 두 개의 정수를 더하는 람다 함수
val lambda2: (Int, Int) -> Int = { a, b -> a + b }
람다 함수를 인자로 받는 함수
fun operateOnNumbers(a: Int, b: Int, operation: (Int, Int) -> Int): Int {
return operation(a, b)
}
fun main() {
val sumLambda: (Int, Int) -> Int = { x, y -> x + y }
val result = operateOnNumbers(5, 3, sumLambda)
println(result) // 출력: 8
}
it 키워드 사용
람다 함수가 하나의 매개변수만 갖는 경우, it 키워드를 사용하여 간단하게 표현할 수 있습니다.
val square: (Int) -> Int = { it * it }
fun main() {
val result = square(5)
println(result) // 출력: 25
}
람다 함수의 다양한 사용 예제
// 컬렉션의 각 요소에 대해 람다 함수 적용
val numbers = listOf(1, 2, 3, 4, 5)
val squaredNumbers = numbers.map { it * it }
println(squaredNumbers) // 출력: [1, 4, 9, 16, 25]
// 필터링을 위한 람다 함수
val evenNumbers = numbers.filter { it % 2 == 0 }
println(evenNumbers) // 출력: [2, 4]
// reduce를 이용한 람다 함수
val product = numbers.reduce { acc, next -> acc * next }
println(product) // 출력: 120
with 및 apply 함수를 통한 람다 사용:
kotlin
Copy code
// with 함수를 사용한 람다
val resultWith = with(StringBuilder()) {
append("Hello, ")
append("Kotlin!")
toString()
}
println(resultWith) // 출력: Hello, Kotlin!
// apply 함수를 사용한 람다
val resultApply = StringBuilder().apply {
append("Hello, ")
append("Kotlin!")
}.toString()
println(resultApply) // 출력: Hello, Kotlin!
람다 함수는 코드를 간결하게 표현할 수 있어서 함수형 프로그래밍에 매우 적합합니다. 람다 함수는 함수형 프로그래밍의 핵심 개념 중 하나이며, 코틀린에서 함수형 프로그래밍을 지원하기 위해 강력하게 채택되었습니다.
With ChatGPT