[22강] https://youtu.be/Ae_D4Wb8OhI
1. Null 처리
?. : null safe operator - 만약 Null이 아니면(= 안전하다면) 실행
?: : elvis operator - 만약 Null이면(=위험하면) 다른 옵션으로 바꿔서 실행
!!. : non-null assertion operator - 그냥 해줘 (에러날 수 있음)
fun main() {
var str : String? = null
println(str?.length)
println(str?:"default".length)
println(str!!.length)
}
/*
?. : null safe operator
?: : elvis operator
!!. : non-null assertion operator
*/
null
7
Exception in thread "main" java.lang.NullPointerException
at FileKt.main (File.kt:6)
at FileKt.main (File.kt:-1)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (:-2)
2. 동일한가? (===연산자)
fun main() {
var a = Person("김철수", 18)
var b = Person("김철수", 18)
var c = a
var d = Person("김영희", 18)
println(a==b) // 내용은 같지만,
println(a===b) // 다른 사람임
println(a==c) // 내용도 같고
println(a===c) // 같은 사람
println(a==d) // 다른 사람
println(a===d)
}
class Person(var name : String, var age : Int) {
// ==를 재정의 함
override fun equals(other: Any?) : Boolean {
if(other is Person){
return other.name == name && other.age == age
}else{
return false
}
}
}
true
false
true
true
false
false
'코틀린' 카테고리의 다른 글
[Youtube DiMo] 24강. 내부클래스 (0) | 2022.04.30 |
---|---|
[Youtube DiMo] 23강. 함수 (0) | 2022.04.30 |
[Youtube DiMo] 21강. 문자열 (0) | 2022.04.29 |
[Youtube DiMo] 20강. 리스트 (0) | 2022.04.29 |
[Youtube DiMo] 19강. 제네릭 (0) | 2022.04.29 |
댓글