Swift 로 코딩을 하다 보면, Mutability에 대해 많은 고민을 하기도 하고 난감할 때가 있죠.
원래 계획은 keyframe이 보통 20개에 훨씬 못 미치니까 일단 20개의 키프레임을 만들어 놓고,
그 값을 서브스크립트로 바꿔가며 작업을 하려고 했는데,
Cannot assign through subscript: 'self' is immutable
라는 에러 메세지를 받았죠.
이유를 찾아보니, struct은 value 타입이라서, 그 인스턴스 프라퍼티를 수정하는 것이 실제로는 그 인스턴스 자체를 수정하는 것이라는군요.
이 경우, 함수 앞에. mutating을 붙여야 한답니다.
저 setPosition 함수 앞에 mutating을 붙이는 걸로 해결은 났지만,
mutating 이라는 키워드를 붙이는 게 좀 께름칙해서, 수정을 하는 게 아니라 변화한 배열을 새로 만들어서 리턴해야 하나?
하는 고민을 하는 중입니다.
Chris Eidof의 글을 하나 주운 건 행운.
https://chris.eidhof.nl/post/structs-and-mutation-in-swift/