250x250
반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
Tags
- 스트럭트
- struct
- 앱개발
- 딕셔너리
- 기초문법
- 디자인 패턴
- RxSwift
- uikit
- forEach
- async
- 대표
- CS
- 이론
- mvc
- 네트워크
- MVVM
- 토이프로젝트
- SwiftUI
- AppStore
- 협업
- collectionview
- ios
- 세종대학교
- 구름톤 유니브
- 프로토콜
- 반응형
- 실습
- swift
- WeatherKit
- 학과별커뮤니티
Archives
- Today
- Total
스윞한 개발자
Swift 기초 문법 - lazy 키워드 본문
728x90
반응형
SMALL
lazy :
이번에는 lazy에 대해 포스팅 해보겠습니다!
스위프트에서 '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 패턴에서의 lazy
728x90
반응형
LIST
'Swift 이론' 카테고리의 다른 글
Swift 기초 문법 - class func vs static func (0) | 2024.01.24 |
---|---|
Swift 기초 문법 - private(set)/foreach, enumerate/compactMap/flatMap (0) | 2024.01.24 |
Swift 기초 문법 - 고차함수 Higher Order Functions (0) | 2024.01.23 |
Swift 기초 문법 - 별칭/typealias, Set (0) | 2024.01.23 |
Swift 기초문법 - 프로토콜 (0) | 2024.01.23 |