이전 포스트에서 가장 궁금했던것중에 하나가 전역변수는 지연적으로 할당되는데 그렇다면 굳이 lazy라는 키워드는 왜 필요한 것인가 ??
코딩을 하다보면 아는 부분이겠지만 lazy를 써야만 하는 경우가 분명히 존재하는데 그 차이가 무엇일까 ??
lazy var lazyVar: Int = {
print("Initializing lazyVar")
return 10
}()
func someFunc() {
print("Inside someFunc")
}
print("Before calling someFunc")
someFunc()
print("After calling someFunc")
print(lazyVar)
즉 결론은 전역변수와 lazy 변수의 차이는 전역변수는 프로그램 시작과 동시에 메모리에 올라가지만 실제로 사용되기전까지 초기화되지않고 lazy 변수는 실제로 사용되기전까지 메모리위에조차 올라가지않는 것이다