별의 공부 블로그 🧑🏻‍💻
728x90
728x170

람다식의 매개변수

 

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
fun main() {
    // 매개변수가 없는 람다식
    noParam({ "Hello World!" })
    noParam { "Hello World!" }    // 위와 동일한 결과, 소괄호 생략 가능

    println()

    // 매개변수가 1개 있는 람다식
    oneParam({ a -> "Hello World! $a" })
    oneParam { a -> "Hello World! $a" }   // 위와 동일한 결과, 소괄호 생략 가능
    oneParam { "Hello World! $it" }       // 위와 동일한 결과, it으로 대체 가능

    println()
    
    // 매개변수가 2개 있는 람다식
    moreParam({ a, b -> "Hello World! $a $b" })   // 매개변수 이름 생략 불가
    moreParam { a, b -> "Hello World! $a $b" }    // 위와 동일한 결과, 소괄호 생략 가능

    println()

    // 일반 매개변수와 람다식 매개변수를 같이 사용하기
    // 1. 인자와 함께 람다식을 사용하는 경우
    withArgs("Arg1", "Arg2", { a, b -> "Hello World! $a $b" })

    // 2. withArgs() 함수의 마지막 인자가 람다식인 경우, 소괄호 바깥으로 분리 가능
    withArgs("Arg1", "Arg2") { a, b -> "Hello World! $a $b"}
}

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

// 매개변수가 1개 있는 람다식이 oneParam() 함수의 매개변수 out으로 지정됨.
fun oneParam(out: (String) -> String) {
    println(out("OneParam"))
}

// 매개변수가 2개 있는 람다식이 moreParam() 함수의 매개변수 out으로 지정됨.
fun moreParam(out: (String, String) -> String) {
    println(out("OneParam", "TwoParam"))
}

// withArgs() 함수는 일반 매개변수 2개를 포함, 람다식을 마지막 매개변수로 가짐.
fun withArgs(a: String, b: String, out: (String, String) -> String) {
    println(out(a, b))
}

 

Hello World!
Hello World!

Hello World! OneParam
Hello World! OneParam
Hello World! OneParam

Hello World! OneParam TwoParam
Hello World! OneParam TwoParam

Hello World! Arg1 Arg2
Hello World! Arg1 Arg2

Process finished with exit code 0
728x90
그리드형(광고전용)
⚠️AdBlock이 감지되었습니다. 원할한 페이지 표시를 위해 AdBlock을 꺼주세요.⚠️
starrykss
starrykss
별의 공부 블로그 🧑🏻‍💻


📖 Contents 📖