본문 바로가기
FRONT-END/iOS

Swift의 self vs Self 이해하기

by 랄라J 2023. 8. 2.

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 } }
반응형

'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

댓글