기타/What I Learned

[TIL] Kotlin - 람다식 이해(2)

가죽방패 2022. 1. 29. 15:25

※ 람다식 이해(2)

- 매개변수 개수에 따라 람다식을 구성하는 법

 

매개변수가 없는 경우

fun main() {
	// 매개변수 없는 람다식 함수
    npParam({ "Hello World!" })
    noParam { "Hello World!" } // 위와 동일 결과, 소괄호 생략 가능
}

// 매개변수가 없는 람다식 함수가 noParam 함수의 매개변수 out으로 지정됨
fun noParam(out: () -> String) = println(out())

매개변수가 한 개인 경우

fun main() {
	// 매개변수 없는 람다식 함수
    
    // 매개변수가 하나 있는 람다식 함수
    oneParam({ a -> "Hello World! $a" })
    oneParam { a -> "Hello World! $a" } // 위와 동일 결과, 소괄호 생략 가능
    oneParam { "Hello World! $it" }		// 위와 동일 결과, it으로 대체 가능
}
...
// 매개변수가 하나 있는 람다식 함수가 oneParam함수의 매개변수 out으로 지정됨
fun oneParam(out: (String) -> String) {
	println(out("OneParam"))
}

매개변수가 두 개 이상인 경우

fun main() {
...
	// 매개변수가 두 개 있는 람다식 함수
    moreParam { a, b -> "Hello World! $a $b"} // 매개변수명 생략 불가
...
}
// 매개변수가 두 개 있는 람다식 함수가 moreParam 함수의 매개변수로 지정됨
fun moreParam out: (String, String) -> String) {
	println(out("OneParam", "TwoParam"))
}

매개변수를 생략하는 경우

moreParam { _, b -> "Hello World! $b"} // 첫 번째 문자열은 사용하지 않고 생략

 

출처: 코틀린 프로그래밍 기본1 (강사: 황영덕)

'기타 > What I Learned' 카테고리의 다른 글

[TIL] Kotlin - 인라인/확장 함수  (0) 2022.02.03
[TIL] Kotlin - 익명/인라인 함수  (0) 2022.01.30
[TIL] Kotlin - 람다식의 이해(1)  (0) 2022.01.28
[TIL] Kotlin - 람다  (0) 2022.01.26
[TIL] Kotlin - 패러다임(1)  (0) 2022.01.25