728x90

출처: fastcampus
35개 프로젝트로 배우는 Android 앱 개발 feat. Jetpack Compose 초격차 패키지 Online. part0 강의자료
package com.example.kotlin
fun main(){
//let, run, apply, also with
//1. let
val a = 3
a.let { }
var user : User1? = User1("hesse",23,true)
val age = user?.let {
it.age
}
println(age)
user = null
println(age)
println()
// 수신객체.let { user ->
//
// 마지막 줄 // return
// }
// val age = user.let {//user -> 이렇게 명시적 선언도 가능
// user.age
// }
//
// println(age)
//2. run
//수신객체.run { this->
//
// 마지막 줄
//}
val kid = User1("아이",4,false)
val kidAge = kid.run {
age //this.age에서 this 생략 가능
}
println(kidAge)
//3. apply
//수신객체.apply {
// ㅇdwdadfdgg
//}
// return 값이 수신객체
val kidName = kid.apply {
name
}
println(kidName)
val female = User1("슬기",20,true,true)
val femaleValue = female.apply {
hasGlasses = false
}
println(femaleValue.hasGlasses)
//4. also
// 수신객체.also { it-> // local variable
//
//
// } // return 수신객체 (자기자신)
val male = User1("민수",18,false,true)
val maleValue = male.also {
//user->
// user.name
// user.hasGlasses = false
//
println(it.name)
}
println(maleValue.hasGlasses)
//5. with
// with(수신객체) {
// ---
// 마지막줄
// }
val result = with(male) {
hasGlasses = false
true
}
}
class User1 (
val name : String,
val age: Int,
val gender : Boolean, // true : male false: female
var hasGlasses : Boolean = true,
)728x90
'코틀린(Kotlin)' 카테고리의 다른 글
| (코틀린/Kotlin) Data, Sealed class (0) | 2024.02.08 |
|---|---|
| (코틀린/Kotlin) 초기화 지연 (0) | 2024.02.08 |
| (코틀린/Kotlin) 확장함수 (0) | 2024.02.08 |
| (코틀린/Kotlin) Lambda(람다) (0) | 2024.02.08 |
| (코틀린/Kotlin) String template (0) | 2024.02.06 |