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 |