Day 11. Struct Part 2

접근 제어 (access control)

외부로부터 구조체 내의 프로퍼티를 보호하고 싶을 때가 있음.

특정 메소드가 순서대로 호출되어야 하여 외부에서 접근이 불가능하도록 할 때. 프로퍼티 접근 전에 실행할 로직이 있을 때.

  • private : 해당하는 구조체 내에서만 접근 가능
  • fileprivate : 해당 구조체 및 같은 파일 내에서만 접근 가능
  • public : 언제 어디서나 접근 가능

  • private(set) : 해당 프로퍼티는 자유롭게 읽을 수 있으나 수정은 구조체 내의 메소드에서만 가능하다.

정적 프로퍼티와 정적 메소드

앱 전체에서 사용되는 공통 기능이나 데이터를 저장할 때 사용한다.

static 키워드를 사용하여 정적 프로퍼티와 정적 메소드를 정의한다.

struct School {
    static var studentCount = 0

    static func add(student: String) {
        studentCount += 1
    }
}

static 메소드는 mutating 키워드를 사용할 수 없다.

self, Self의 차이점

카테고리:

업데이트: