Swift

[Swift] 함수를 사용한 프로퍼티 기본값 설정

yevdev 2022. 3. 19. 15:54

함수를 사용한 프로퍼티 기본 값 설정

만약 사용자 정의 연산을 통해 저장 프로퍼티 기본값을 설정하고자 한다면 클로저나 함수를 사용하여 프로퍼티 기본 값을 제공할 수 있다.

인스턴스를 초기화할 때 함수나 클로저가 호출되면서 연산 결괏값을 프로퍼티 기본값으로 제공해준다. ( -> 타입이 일치해야함 )

클로저가 실행되는 시점
- 초기화할 때, 인스턴스의 다른 프로퍼티 값이 설정되기 전! 즉, 클로저 내부에서는 인스턴스의 다른 프로퍼티를 사용하여 연산할 수 없다는 것이다. (self 프로퍼티, 인스턴스 메서드 등)

 

 

클로저를 통한 student 프로퍼티 기본 값 설정

struct Student{
    var name: String?
    var number: Int?
}

class SchoolClass{
    var student: [Student] = {
        // 새로운 인스턴스를 생성하고 사용자 정의 연산을 통한 후 반환해준다.
        // 반환되는 값 타입은 [Student] 타입이어야 한다.
        var arr: [Student] = [Student]()
        
        for num in 1...15{
            var student: Student = Student(name: nil, number: num)
            arr.append(student)
        }
        
        return arr
    }()
}

let myClass: SchoolClass = SchoolClass()
print(myClass.student.count)    // 15

 

💡iOS에서의 활용
- 스위프트 언어와는 크게 관계가 없지만 iOS의 UI등을 구성할 때, UI 컴포넌트를 클래스의 프로퍼티로 구현하고, UI 컴포넌트의 생성과 동시에 컴포넌트의 프로퍼티를 기본적으로 설정할 때 유용하게 사용할 수 있다!

 


Reference

Swift 스위프트 프로그래밍 - 야곰