[Kotlin/코틀린] 주요 함수 - let, apply, run, also

SoyoungLee·2021년 4월 6일
0
post-thumbnail

💌 주요 함수 - let, apply, run, also

📌 let

  • 좌측 함수나 객체의 결과값을 넘겨 받는다.
  • 이름 미지정 시 it. let{} 밖의 다음 함수식에 값 넘길 수 있다.
"hi".let { println(it) }
    1232.let { it + 1 }.let { it * 3 }.let { println(it) }
    var add = { a: Int, b: Int -> a+b }
    add(1,2).let { println(it) }
    var bug: () -> Any? = {null}
    bug()?.let { println(it) }
    
   // ?가 있다면 좌측 객체나 함수의 결과가 Null일 경우, let{}안의 코드는 실행되지 않음

🖥
hi
3699
3

📌 apply

  • 좌측 함수나 객체를 넘겨 받는다.
  • apply{} 안에서 객체의 값 변경하고 반환한다.
  • 넘겨받는 객체는 this다.
val l = mutableListOf(1, 3, 2, 3, 4).apply {
        removeAt(0)
    }
    println(l)
    data class test (var name: String, var age: Int)
    val lst = test("박모씨", 50).apply {
        this.name = "박회장"
        this.age = 60
    }
    println(lst)
    
    // ?가 있다면 좌측 객체나 함수의 결과가 Null일 경우, apply{}안의 코드는 실행되지 않음

🖥
[3, 2, 3, 4]
test(name=박회장, age=60)

📌 run

  • run{} 안의 결과값을 {} 밖으로 넘긴다.
  • {} 안을 리턴값이 있는 함수처럼 사용한다.
  • {} 밖에서는 변수를 사용하지 않고 결과값을 그대로 받아 사용 가능하다.
run{
        123 + 10
    }.let { println(it) }

run{
        null
    }?.let { println("null 아님")}

🖥
133

📌 also

  • let과 같다.
  • 단지 결과값을 다음 함수식에 넘기지 않는다.
profile
Android Developer..+ iOS 슬쩍 🌱 ✏️끄적끄적,,개인 기록용 👩🏻‍💻

0개의 댓글