? โก null ํ์ฉ
?. โก null์ด๋ฉด null์ ๋ฆฌํดํ๊ณ , null์ด ์๋๋ฉด ๋ค์ ๋ช ๋ น์ด๋ฅผ ์ํํ๋ค.
!!. โก null์ด ์๋๋ผ๋ ๊ฐ์ ํ์ ๋ค์ ๋ช ๋ น์ด๋ฅผ ์ํํ๋ค.
?: โก null์ด๋ฉด ๋ค์ ๋ช ๋ น์ด๋ฅผ ์ํํ๊ณ , null์ด ์๋๋ฉด ์ํํ์ง ์๋๋ค.
์์ฒญ ํท๊ฐ๋ฆฐ๋ค.
์ด๊ฑด ์ผ๋งค ์๊ธฐ ๋ฐฉ๋ฒ์ธ๋ฐ
. ์ด ๋ถ์ผ๋ฉด "null ์ด ์๋ ๋" (๋ถ์ )
: ์ด ๋ถ์ผ๋ฉด "null์ผ ๋" ๋ผ๊ณ ์๊ธฐํ๋ค. (๊ธ์ )
fun main() {
val str: String = "ABC"
//val str: String = null //error
val str2: String? = null //? : null์ ํ์ฉํ๋ค
val str3: String? = "ABC"
val str4: Int? = null //? : null์ ํ์ฉํ๋ค
println(str.length)
//println(str2.length) //error : need ?. or !!.
// ?. : null safe call operator -> ?. ์์ ๋ณ์๊ฐ null์ด ์๋๋ฉด ๋ค์ ๋ช
๋ น์ด๋ฅผ ์คํํ๋ค. null์ด๋ฉด null์ ๋ฆฌํด
println(str2?.length)
println(str3?.length)
// !!. : null์ด ์๋๋ผ๋ ๊ฐ์ ํ์ ์คํ. ์ค์ ๋ก๋ ์ ์ธํ ๋ ?๋ฅผ ๋ถ์ฌ์ null์ด ๋ค์ด๊ฐ ์ ์์ง๋ง, null์ด ์๋๋ผ๋ ๊ฒ์ ๋ณด์ฅํด์ค๋ค.
println(str3!!.length)
//println(str2!!.length) //NullPointerException
val str5: String? = "ABC"
str5 ?: println("str5 is null!") //๋ฏธ์ถ๋ ฅ
val str6: String? = null
str6 ?: println("str6 is null!")
}
์คํ ๊ฒฐ๊ณผ
'Web > Kotlin' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Kotlin] class / data class / enum class (0) | 2023.08.20 |
---|---|
[Kotlin] if / when (0) | 2023.08.20 |
[Kotlin] ๋ณ์ ์ ์ธ ์ var / val ์ฐจ์ด (0) | 2023.08.18 |