은닉화
파일 간, 또는 모듈 간 접근을 제한할 수 있는 기능
모듈(Module) → 배초할 코드의 묶음 단위
ex) 하나의 Framework, Library, Application 등 ... import 키워드를 통해 불러오는 것
Keyword:
note: public, open 으로 갈수록 "높은 접근수준"을 말하며, fileprivate, private 으로 내려갈수록 "낮은 접근수준"이라 말한다
ex) private 으로 설정한 구조체 내부의 프로퍼티로 open, public 설정 불가능
private class AClass{
//AClass 가 private이기 때문에 someMethod 도 private으로 취급
public func someMethod(){
...
}
}
internal class InternalClass { }
private struct PrivateStruct { }
public var publicTuple: (first: InternalClass, second: PrivateStruct)
= (InternalClass(), PrivcateStruct())
//InternalClass 와 PrivateStruct 의 Access Level 이 public 보다 낮기 때문에 사용 불가
private var privateTuple: (first: InternalClass, second: PirvateStruct)
= (InternalClass(), PrivateStruct())
//Access Level 이 같거나 높기 때문에 사용 가능
private:
fileprivate: