Swift
Swift) self vs Self
행복하고 싶은 사람
2022. 8. 11. 15:33
self
애플 공식문서에는 self를 이렇게 정의합니다.
self는 모든 인스턴스들이 암시적으로 생성하는 프로퍼티라고합니다.
self는 instance에서 자기 자신을 나타내는 property!
self는 runtime, compiletime때 class나 struct의 instance를 칭함.
EX)
clas Point{
var x: Int
var y: Int
init(x: Int, y:Int)
{
self.x = x
self.y = y
}
}
Self
Self type은 특정한 type이 아니고 타입의 이름을 반복해서 쓰는 대신에 현재 타입을 편하게 가리킬 수 있도록 해줌
즉 class, sturuct, enum에서 Self를 사용하면 그 타입을 지칭함.
class SumperClass{
func f() ->Self{
return self
}
}
class SubClass:SuperClass{}
let x = SuperClass()
x.f()
let y = SubClass()
y.f()
Self는 type property를 가리킬때 사용됨.
extension Int {
static let zero: Self = 0
func makeZero() -> Self {
return Self()
}
}
이 코드의 경우에는 Self는 Int를 나타내고 있는것임
self와 Self를 비교하자면
Self는 type의 property와 method를 지칭할수있음
self는 instance의 property와 method를 지칭할 수 있음