self/Self 차이점

임혜정·2024년 7월 4일
0

self (소문자)

'self'는 "나 자신"을 가리킨다. 클래스나 구조체 안에서 자기 자신을 지칭할 때 사용한다.

struct Person {
    var name: String
    
    func introduce() {
        print("안녕하세요, 제 이름은 \(self.name)입니다.")
    }
}

let person = Person(name: "철수")
person.introduce() // 출력: 안녕하세요, 제 이름은 철수입니다.

여기서 'self.name'은 "내 이름"


Self (대문자)

'Self'는 나의 타입 전체를 가리킨다. 현재 타입 자체를 참조할 때 인것이다.

protocol Cloneable {
    func clone() -> Self
}

struct Sheep: Cloneable {
    var name: String
    
    func clone() -> Self {
        return Sheep(name: "Clone of " + self.name)
    }
}

let dolly = Sheep(name: "Dolly")
let clonedSheep = dolly.clone()
print(clonedSheep.name) // 출력: Clone of Dolly

여기서 'Self'는 Sheep 타입 전체를 의미한다.
clone() 함수는 "나와 같은 타입"의 새로운 인스턴스를 반환하게 된다.

  • 'self'는 "나"를 가리킴 (개인)
  • 'Self'는 "나의 종류 전체"를 가리킴 (집단)
profile
오늘 배운걸 까먹었을 미래의 나에게..⭐️

0개의 댓글