Notice
Recent Posts
Recent Comments
Link
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

개발여행일지~

지연초기화 본문

코틀린 공부정리

지연초기화

야생돌고래 2023. 7. 24. 20:32
변수나 상수의 값을 나중에 초기화할 수 있다!
  • 코틀린은 클래스를 설계할 때 안정성을 위해 반드시 변수의 값을 초기화할것을 권장한다.
  • 클래스를 설계할 때 초기의 값을 정의하기 난처해서 나중에 대입하기 위한 문법이다.

 

코틀린의 지연초기화 방법
  • 코틀린은 지연초기화 또는 늦은초기화를 위해 lateinit, lazy 키워드를 활용한다.
  • 변수는 lateinit으로 지연초기화해야한다.
  • 상수는 lazy로 지연초기화해야한다.
지연초기화를 사용하는 이유
  • 저사양으로 제한되어있는 환경에서 메모리를 더욱 효율적으로 사용가능하다.

 

예시)

  • 변수의 지연초기화
    • 기본 사용
      • name변수 값을 초기에 정의하기 어렵기 때문에 lateinit을 사용한다.
    • 고급 사용
      • 변수를 사용하기전에 초기화되었는지 확인해야 안정성을 높일 수 있다.
    • 상수의 지연초기화
      • 상수를 사용하는 시점에 값을 대입하고 초기화가 수행된다.
fun main(){
    var s1 = Student()
    s1.name = "참새"
    s1.displayInfo()

    s1.age = 10
    s1.displayInfo()
}

class Student {
    lateinit var name:String
    var age:Int = 0
    val address: String by lazy {
        println("address 초기화")
        "seoul"
    }

    fun displayInfo() {
        println("이름은: ${name} 입니다.")
        println("나이는: ${age} 입니다.")
        println("주소는: ${address} 입니다.")
    }
}