Swift - Struct / Class (5_mutating)

이한솔·2023년 9월 6일
0

Swift 문법 🍎

목록 보기
17/32

mutating

스위프트에서 구조체와 열거형은 값 타입이다. 값 타입인 구조체에서는 인스턴스 메소드 내에서 프로퍼티들을 수정할 수 없다. 따라서 이러한 프로퍼티들을 구조체 안의 메소드에서 수정하려면 mutating이라는 키워드를 사용해야한다.

struct Person {
    let name: String
    var age: Int
    
    init(name: String, age: Int) {
        self.name = name
        self.age = age
    }
    
    func changeAge() { 
        age = 10       // Error
    }
}


struct Person {
    let name: String
    var age: Int
    
    init(name: String, age: Int) {
        self.name = name
        self.age = age
    }
    
    mutating func changeAge() { 
        age = 10       // mutating 키워드 사용
    }
}

var p = Person(name: "hansol", age: 19)
print(p.age) // 출력값: 19

p.changeAge()
print(p.age) // 출력값: 10

0개의 댓글