본문 바로가기
학습 log (이론)/kotlin

Kotlin기초 '유용한 함수'

by abbear25 2019. 11. 10.
class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        /*let*/
        f1().let { result -> height(result) } //height(it): 변수를 지정해주지 않으면 반드시 it 으로 반환하도록 지정되어 있음
        100.let { it+1}.let { print(it) }
        //let 을 이용한 null 처리
        var nullExc: () -> Any? = {null}
        nullExc()?.let { print(it) }
        /*apply()*/
        var obj = Car().apply ({height=100;})
        /*run()*/
        obj.run { year=2;model()}.let { print(it) }
        /*with()*/
        with(obj){year=2;model()}
        /*also()*/
        100.let {it}.also {it+1}.also {it+2}.let {it}
    }
    fun f1():Int {
        return 10
    }
    fun height(height:Int){
    }
    class Car{
        var height = 10
        var year = 1
        fun model() = year++
    }
}

 

let(), 람다 결과 반환

함수의 결과를 반환

변수?.let{ } 을 통하여 null이 아닌 경우만 실행되도록 주로 사용

 

apply(), 객체 반환

객체 생성과 동시에 초기화

 

run(), 람다 결과 반환

이미 생성된 객체의 변수 등을 연속적으로 호출

 

with(), 람다 결과 반환

run()과 동일하지만 객체를 매개변수로 받아서 처리

주로 view에 접근할 때 사용

 

also(), 객체 반환

let은 내부 결과를 반환할 수 있지만 also는 반환 불가능

 

반응형

'학습 log (이론) > kotlin' 카테고리의 다른 글

Kotlin기초 'lambda'  (0) 2019.12.07
Kotlin기초 'Closure'  (0) 2019.11.12
Kotlin기초 '함수형 프로그래밍'  (0) 2019.11.06
Kotlin기초 '객체'  (0) 2019.11.03
Kotlin기초 'Exception 처리'  (0) 2019.10.27