접근제어
접근제어는 코드끼리 상호작용을 할때 파일 간 또는 모듈 간에 접근을 제한하는 기능이다.
접근수준 키워드를 통해 특정 접근 수준을 지정할 수 있고, 프로퍼티, 메서드, 이니셜라이저, 서브스크립트 각각에도 접근수준을 지정할 수 있다.
접근수준 | 키워드 | 접근도 | 범위 |
---|---|---|---|
개방 접근수준 | open | 높음 | 모듈 외부까지 |
공개 접근수준 | public | ㅣ | 모듈 외부까지 |
내부 접근수준 | internal | ㅣ | 모듈 내부 |
파일외부비공개 접근수준 | fileprivate | ㅣ | 파일 내부 |
비공개 접근수준 | private | 낮음 | 기능 정의 내부 |
-접근제어는 요소 앞에 지정해주기만 하면된다. internal은 기본 접근수준이므로 표기생략가능.
-접근제어는 상위 요소보다 하위 요소가 더 높은 접근수준을 가질 수 없다. 비공개 수준으로 정의한 구조체 내부의 프로퍼티로 내부수준이나 공개수준을 갖을 수 없다.
-함수에서는 타입의 접근수준보다 함수의 접근수준이 더 높게 설정될 수 없다.
값을 변경할 수 없도록 구현하고 싶다면 설정자만 더 탖은 접근수준을 갖도록 제한하면 된다.
접근수준(set)