Daily iOS
Swift 언어

mutating과 값 타입

아래 코드에서 컴파일 에러는 어느 줄에서 왜 나나요?

struct Counter {
    var value = 0
    func increment() { value += 1 }
}
let c = Counter()
c.increment()
면접관은 이 답을 어떻게 들을까요? 넘어갈지, 더 물어볼지, 떨어뜨릴지 알려 주고, 걸리는 문장은 콕 집어 줘요. 점수는 그대로예요.
짧은 답 보기

struct 메서드는 기본적으로 self가 불변인 상태라 value += 1에서 에러가 나고, 프로퍼티를 바꾸려면 mutating이 필요하며 그러면 let 인스턴스에서는 호출이 막힌다.

받은 질문 공유