1. 간단한 struct 예시

 

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

 

 

 

 

 

2. mutating 적용해서 코드 정상화하기

 

Cannot assign property라는 에러가 발생했습니다.

값 타입인 구조체에서는 메소드안의 값을 수정할 수 없기 때문에 발생한 에러입니다. (클래스였으면 불필요)

changeAge() 메소드 앞에 mutating을 작성하여 값 타입 프로퍼티를 수정할 수 있게 만들 수 있습니다.

 

struct Person {
    let name : String
    var age : Int
    
    init(name : String, age : Int) {
        self.name = name.uppercased()
        self.age = age
    }
    
    mutating func changeAge() {
        age = 99
    }
}

var minji = Person(name: "Kim", age: 9)
print(minji.name)
minji.changeAge()
print(minji.age)

 

 

 

+ Recent posts