Notice
Recent Posts
Recent Comments
Link
«   2025/02   »
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
Archives
Today
Total
관리 메뉴

Jupyo's Daily Story

lazy 본문

Swift

lazy

JangJupyo 2022. 11. 24. 12:14
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)  // 초기화된 값이 재사용됩니다.

 

 

설명

  1. 클로저 초기화: lazy var를 선언할 때는 초기화할 때 사용할 클로저를 제공해야 합니다. 이 클로저는 해당 속성이 처음으로 사용될 때 실행됩니다.
  2. 지연 초기화: data 속성에 처음 접근할 때 클로저가 실행되어 값을 초기화합니다. 이후에는 이 값이 저장되어 다음 접근 시에는 초기화가 일어나지 않습니다.
  3. 성능 향상: 지연 초기화를 통해 불필요한 초기화를 방지하고, 객체 생성 시점에 필요한 값만 계산할 수 있습니다.

 

주의사항

  • 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