Swift 공부 노트: mutating 요구사항 프로토콜을 class가 채택할 때의 컴파일 동작

·
Swift
왜 이 내용을 정리하나프로토콜을 설계할 때 값을 바꾸는 메서드를 요구하는 경우가 많다. 이때 struct와 class가 같은 프로토콜을 채택하면 결과가 다르게 나온다. 어떤 타입은 아무 문제 없이 통과하고, 어떤 타입은 컴파일 에러가 나므로 채택하기 전에 차이를 알아 둘 필요가 있다. 특히 struct 위주로 작성하던 코드를 class로 옮기려고 할 때 이 차이를 모르면 에러 메시지 앞에서 당황하게 된다. 이 노트에서는 mutating 요구사항을 class가 채택할 때 무슨 일이 생기는지 정리해 본다.개념 설명프로토콜에 mutating func를 요구하면, 그 메서드를 구현하는 타입은 값 자체를 바꿀 수 있어야 한다. struct와 enum은 값 타입이라 mutating을 붙인 메서드 안에서 프로퍼티를 ..