🎯 람다
📖 람다란?
**람다(Lambda)**는 이름 없는 함수를 간단히 표현하는 방법입니다. 짧고 간결한 코드 작성에 유용합니다.
💡 람다 기본
일반 함수 vs 람다
fun main() {
// 일반 함수
fun double(x: Int): Int {
return x * 2
}
// 람다
val doubleLambda = { x: Int -> x * 2 }
println(double(5)) // 10
println(doubleLambda(5)) // 10
}
람다 문법
fun main() {
// 기본 형태: { 매개변수 -> 본문 }
val sum = { a: Int, b: Int -> a + b }
println(sum(3, 5)) // 8
}
타입 추론
fun main() {
// 타입 명시
val multiply: (Int, Int) -> Int = { a, b -> a * b }
// 타입 추론 (매개변수 타입 생략)
val divide = { a: Int, b: Int -> a / b }
println(multiply(6, 3)) // 18
println(divide(10, 2)) // 5
}
🎨 람다 활용
리스트와 함께
fun main() {
val numbers = listOf(1, 2, 3, 4, 5)
// filter - 조건에 맞는 것만
val evens = numbers.filter { it % 2 == 0 }
println(evens) // [2, 4]
// map - 각 요소를 변환
val doubled = numbers.map { it * 2 }
println(doubled) // [2, 4, 6, 8, 10]
// forEach - 각 요소에 작업
numbers.forEach { println(it) }
}
it 키워드
매개변수가 하나면 it으로 참조 가능!
fun main() {
val numbers = listOf(1, 2, 3, 4, 5)
// it 사용
val doubled = numbers.map { it * 2 }
// 명시적 매개변수 (같은 의미)
val doubled2 = numbers.map { num -> num * 2 }
println(doubled) // [2, 4, 6, 8, 10]
println(doubled2) // [2, 4, 6, 8, 10]
}