Jupyo's Daily Story
lazy 본문
728x90
반응형
Lazy는 Swift에서 지연 초기화를 제공하는 속성으로, 특정 값을 필요로 할 때까지 계산을 미루는 기능을 제공합니다.
Lazy 속성을 사용하면 객체가 처음으로 접근될 때 초기화가 이루어지며, 이후에는 저장된 값이 재사용됩니다. 이렇게 하면 불필요한 초기화를 방지하고 성능을 개선할 수 있습니다.
기본 사용법
Lazy 속성은 var로 선언된 속성만 지원합니다. 다음은 Lazy 속성을 사용하는 예입니다.
class DataLoader {
lazy var data: [String] = {
// 이 클로저는 data가 처음으로 접근될 때 실행됩니다.
print("Data is being loaded")
return ["Item1", "Item2", "Item3"]
}()
}
let loader = DataLoader()
print("DataLoader instance created")
print(loader.data) // 이 시점에 data가 초기화됩니다.
print(loader.data) // 초기화된 값이 재사용됩니다.
설명
- 클로저 초기화: lazy var를 선언할 때는 초기화할 때 사용할 클로저를 제공해야 합니다. 이 클로저는 해당 속성이 처음으로 사용될 때 실행됩니다.
- 지연 초기화: data 속성에 처음 접근할 때 클로저가 실행되어 값을 초기화합니다. 이후에는 이 값이 저장되어 다음 접근 시에는 초기화가 일어나지 않습니다.
- 성능 향상: 지연 초기화를 통해 불필요한 초기화를 방지하고, 객체 생성 시점에 필요한 값만 계산할 수 있습니다.
주의사항
- lazy 속성은 클래스 인스턴스에서만 사용 가능합니다. 구조체(struct)와 열거형(enum)에서는 사용할 수 없습니다.
- lazy 속성은 초기화 시점에 반드시 초기화가 되어야 하며, 이 과정에서 self를 참조할 수 있습니다.
반응형
'Swift' 카테고리의 다른 글
이진수(binary number) (0) | 2024.09.05 |
---|---|
백그라운드 Playback (0) | 2024.02.20 |
접근제어(Access Control) (0) | 2022.11.24 |
final (0) | 2022.11.24 |
포맷 지정자 (0) | 2022.11.18 |