Bibi's DevLog 🤓🍎
[Swift] global과 static은 기본적으로 lazy하다. 본문
global의 기본 동작은 lazy
Swift Language Guide - Properties - Global and Local Variables 중…
Swift Language Guide - Properties 중.
Global constants and variables are always computed lazily, in a similar manner to Lazy Stored Properties. Unlike lazy stored properties, global constants and variables don’t need to be marked with the lazy modifier.
Local constants and variables are never computed lazily.
전역(global) 상수와 변수는 항상 lazy로 계산된다. lazy 저장 프로퍼티의 동작방식과 같다. 차이점은 lazy라는 키워드가 필요없다는 것이다.
지역(local) 상수와 변수는 절대 lazy로 계산되지 않는다.
static은 global
static은 항상 global(전역)으로 선언된다.
그런데 모든 global은 lazy로 생성된다.
따라서 static도 lazy로 생성되는 것임! (3단 논법?)
즉 Swift에서 static변수는 Lazy Stored Property (lazy 저장프로퍼티)와 같이, 초기값이 그 변수가 처음 사용될 때 계산된다 (= 사용되기 전까지는 계산되지 않는다!)
이를 증명하듯 static var변수에 lazy를 선언하려 하면 오류가 발생함.
오류의 내용은 “이미 lazy인 전역변수에 대해서는 lazy 키워드를 사용할 수 없다”이다.
'📱🍎 iOS > 🕊 Swift' 카테고리의 다른 글
[Swift] Date, DateFormatter (0) | 2023.06.04 |
---|---|
[Swift Language Guide] Concurrency (async/await, task, actor) (1) | 2023.04.16 |
Swift의 메모리 구조 (기초) (0) | 2023.01.31 |
[Swift Language Guide (5.7)] Structures and Classes 구조체와 클래스 (0) | 2023.01.25 |
[Swift 공식문서] The Swift Programming Language Guide 일부 한국어 번역 (WELCOME TO SWIFT, LANGUAGE GUIDE - The Basics) (0) | 2023.01.12 |