Swift에서의 self와 Self의 차이 이해하기!
self
- self는 인스턴스를 가리킴
- 인스턴스 내부에서 인스턴스의 속성을 더 명확하게 가리키기 위해 사용 self.name = name
- 값 타입에서 인스턴스 자체의 값을 치환할 때 사용 가능 self = Calculator() | 단, 클래스에서는 사용 불가
- 타입속성/메서드에서 사용하면, 타입 자체를 가리킴 static func sample() { print("\(self.name)") }
- 타입 인스턴스를 가리킬 때, 타입 자체의 뒤에 붙여서 사용 let a: MyClass.Type = MyClass.self
Self
- Self는 타입을 가리킴
- 특정 타입 내부에서 타입을 선언하는 위치에 사용 extension Int { static let zero: Self = 0 }
- 특정 타입 내부에서 타입속성/타입메서드를 지칭하는 위치에서 타입 대신 사용 Int.zero -> Self.zero
- 프로토콜에서 채택하려는 타입을 지칭할 수 있음 (범용적 사용 가능) protocol Some { var name: Self { get set } }
728x90
'FRONT-END > iOS' 카테고리의 다른 글
Swift 클로저(Closure) (0) | 2023.08.04 |
---|---|
iOS 앱이 만들어지는 원리 (Web과 비교) (0) | 2023.08.02 |
Swift 중첩 타입 (Nested Types) (0) | 2023.08.02 |
Swift Method Dispatch (0) | 2023.08.01 |
Swift 프로토콜(Protocols) (0) | 2023.08.01 |
댓글