[Kotlin] null ์ฒ˜๋ฆฌ

2020. 8. 27. 23:22ยท๊ฐœ๋ฐœ ํƒ€์ž„์บก์А/Kotlin

 

null

์ฝ”ํ‹€๋ฆฐ์—์„œ๋Š” null๊ฐ’์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค.

//์ดˆ๊ธฐํ™”ํ•˜์ง€ ์•Š์•„ ์—๋Ÿฌ ๋ฐœ์ƒ
val a : String

//null๊ฐ’์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•ด์„œ ์—๋Ÿฌ ๋ฐœ์ƒ
val a : String = null

//OK
val a : String? = null

#์ฝ”ํ‹€๋ฆฐ์—์„œ null๊ฐ’์„ ํ—ˆ์šฉํ•˜๋ ค๋ฉด ์ž๋ฃŒํ˜•์˜ ์˜ค๋ฅธ์ชฝ์— ? ๊ธฐํ˜ธ๋ฅผ ๋ถ™์—ฌ์ฃผ๋ฉด ๋œ๋‹ค.

 

lateinit

lateinit var a : String

a = "hello"
println(a)

#์•ˆ๋“œ๋กœ์ด๋“œ ๊ฐœ๋ฐœ ์‹œ ์ดˆ๊ธฐํ™”๋ฅผ ๋‚˜์ค‘์— ํ•  ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค. ์ด๋•Œ lateinit ํ‚ค์›Œ๋“œ๋ฅผ ๋ณ€์ˆ˜ ์„ ์–ธ ์•ž์— ์ถ”๊ฐ€ํ•˜๋ฉด ๋œ๋‹ค.

lateinit ์‚ฌ์šฉ ์กฐ๊ฑด

#var ๋ณ€์ˆ˜์—์„œ๋งŒ ์‚ฌ์šฉ๊ฐ€๋Šฅ

#null๊ฐ’์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•  ์ˆ˜ ์—†๋‹ค.

#์ดˆ๊ธฐํ™” ์ „์—๋Š” ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค.

#Int, Long, Double, Float์—์„œ๋Š” ์‚ฌ์šฉ ๋ถˆ๊ฐ€

 

lazy

val str: String by lazy {
    println("์ดˆ๊ธฐํ™”")
    "hello"
}

println(str) //์ดˆ๊ธฐํ™”; hello
println(str) //hello

#val์„ ์–ธ ๋’ค์— by lazy๋ธ”๋ก์— ์ดˆ๊ธฐํ™”์— ํ•„์š”ํ•œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ , ๋งˆ์ง€๋ง‰ ์ค„์—๋Š” ์ดˆ๊ธฐํ™”ํ•  ๊ฐ’์„ ์ž‘์„ฑํ•œ๋‹ค.

lazy ์‚ฌ์šฉ์กฐ๊ฑด
#var์—์„œ๋งŒ ์‚ฌ์šฉ๊ฐ€๋Šฅ

 

!!

val name: String? = "ํ‚ค๋‹ค๋ฆฌ"

val name2: String = name //์—๋Ÿฌ
val name3: String? = name //OK

val name4: String = name!! //OK

#๋ณ€์ˆ˜ ๋’ค์— !!์„ ์ถ”๊ฐ€ํ•˜๋ฉด null๊ฐ’์ด ์•„๋‹˜์„ ๋ณด์ฆํ•˜๊ฒŒ ๋œ๋‹ค.

 

?.

val str: String? = null

var upperCase = if (str != null) str else null //null
upperCase = str?.toUpperCase //null

#๋ฉ”์„œ๋“œ ํ˜ธ์ถœ์‹œ ?. ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด null๊ฐ’์ด ์•„๋‹Œ ๊ฒฝ์šฐ์—๋งŒ ํ˜ธ์ถœ๋œ๋‹ค.

 

?:

val str: String? = null

var upperCase = if (str != null) str else null //null
upperCase = str?.toUpperCase ?: "์ดˆ๊ธฐํ™”ํ•˜์‹œ์˜ค" //์ดˆ๊ธฐํ™”ํ•˜์‹œ์˜ค

# ?. ํ˜ธ์ถœ์‹œ null์ด ์•„๋‹Œ ๊ธฐ๋ณธ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๊ณ  ์‹ถ์„ ๋•Œ๋Š” ์—˜๋น„์Šค ์—ฐ์‚ฐ์ž(?:)๋ฅผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•œ๋‹ค.

'๊ฐœ๋ฐœ ํƒ€์ž„์บก์А > Kotlin' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Kotlin] ๋žŒ๋‹ค์‹ / SAM๋ณ€ํ™˜  (0) 2020.08.29
[Kotlin] ๋ฆฌ์ŠคํŠธ / ๋งต / ์ง‘ํ•ฉ  (0) 2020.08.29
[Kotlin] ์ธํ„ฐํŽ˜์ด์Šค  (0) 2020.08.27
[Kotlin] ํด๋ž˜์Šค  (0) 2020.08.27
[Kotlin] ์ œ์–ด๋ฌธ(if, when, for, while)  (0) 2020.08.25
'๊ฐœ๋ฐœ ํƒ€์ž„์บก์А/Kotlin' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [Kotlin] ๋žŒ๋‹ค์‹ / SAM๋ณ€ํ™˜
  • [Kotlin] ๋ฆฌ์ŠคํŠธ / ๋งต / ์ง‘ํ•ฉ
  • [Kotlin] ์ธํ„ฐํŽ˜์ด์Šค
  • [Kotlin] ํด๋ž˜์Šค
๐ŸฅญMango
๐ŸฅญMango
  • ๐ŸฅญMango
    AppleMango๐Ÿฅญ
    ๐ŸฅญMango
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ
      • iOS
        • Swift
        • SwiftUI
        • RxSwift
      • Algorithm
        • C
        • Python
        • Swift
      • Computer Science
        • ์ปดํ“จํ„ฐ ๋„คํŠธ์›Œํฌ
        • OS
      • ...
      • ๊ฐœ๋ฐœ ํƒ€์ž„์บก์А
        • Python
        • Flutter
        • Android
        • Kotlin
        • Java
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๋งํฌ

  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    ์ฝ”ํ‹€๋ฆฐ
    ํŒŒ์ด์ฌ ์ •๋ ฌ
    ๋ฐฑ์ค€ ์†Œ์ˆ˜
    ํŒŒ์ด์ฌ 6118
    ํŒŒ์ด์ฌ 1459
    SwiftUI
    14503 ํŒŒ์ด์ฌ
    ํŒŒ์ด์ฌ 14503
    Swift Hello World!
    ์Šคํƒ
    ๋ฐฑ์ค€ ํ† ๋งˆํ† 
    ์ฝ”ํ‹€๋ฆฐ ์ƒ์†
    1613 ํŒŒ์ด์ฌ
    1์ฐจ์› ๋ฟŒ์š”๋ฟŒ์š”
    1613 ์—ญ์‚ฌ
    6118
    typing animation
    ์—ญ์‚ฌ ํŒŒ์ด์ฌ
    ํŒŒ์ด์ฌ
    Custom Map Marker
    IOS
    swiftUI Gradients
    Apple Login
    swiftUI tabview
    SwiftUI Apple Login
    14503 ๋กœ๋ด‡์ฒญ์†Œ๊ธฐ
    Code Base
    ํ† ๋งˆํ† 
    MapMarker
    ํŒŒ์ด์ฌ ํ† ๋งˆํ† 
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.2
๐ŸฅญMango
[Kotlin] null ์ฒ˜๋ฆฌ
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”