Swift 기초 문법 - 26. lazy 키워드

정성윤·2023년 7월 21일
0

Swift 이론

목록 보기
28/64

스위프트에서 'lazy' 키워드는 속성을 "지연 계산"하는 데 사용됩니다.

해당 속성에 청므으로 접근하는 시점까지 초기화가 지연되어 계산되지 않습니다.
필요한 시점에만 값을 계산하고, 불필요한 자원 낭비를 줄일 수 있습니다.

lazy 키워드 특징

  1. 초기화 지연 :
    'lazy' 키워드로 선언된 속성은 인스턴스 생성 시점이 아니라 속성에 처음으로 접근하는 시점에 초기화됩니다.

  2. 계산 속성으로 동작 :
    실제로 계산 속성으로 동작합니다. 속성에 접근할 때마다 계산이 실행됩니다.

  3. 한 번만 계산 :
    처음 한 번만 계산되며, 이후 접근 시에는 이전에 계산된 값이 재사용됩니다.

lazy var propertyName: PropertyType = {
    // 계산되는 초기화 코드
    // 반환 값은 속성의 타입에 맞아야 합니다.
    return initialValue
}()

propertyName은 lazy 키워드를 사용하여 지연 계산되는 속성을 선언하고 있습니다.
PropertyType은 해당 속성의 타입이며, 초기화 코드를 클로저로 정의하고, 이 클로저의 반환값은 속성의 타입과 일치해야 합니다.

class MyClass {
    lazy var expensiveProperty: Int = {
        print("Calculating expensive property...")
        return 42
    }()
}
let instance = MyClass()
// 여기까지는 "Calculating expensive property..."가 출력되지 않음
print(instance.expensiveProperty)
// 출력: "Calculating expensive property..."
// 출력: 42
print(instance.expensiveProperty)
// 출력: 42 (이미 계산된 값 재사용)

expensiveProperty은 처음으로 접근될 때 계산이 되며, 이후에는 이전에 계산된 값이 재사용됩니다.
expensiveProperty에 처음으로 접근 할때만 print문이 출력됩니다.

MVC, MVVM에서도 사용한 예시입니다.

참고(출처) : 개발하는 정대리, 야곰(Swift 5)

profile
이유있는 스위프트 개발자

0개의 댓글