Avatar
omochimetaru 8/2/2018 3:45 AM
protocol Animal { mutating func eat() } struct StructCat : Animal { var weight: Int = 1 mutating func eat() { weight += 1 } } func feed(animal: Animal) { var animal = animal animal.eat() dump(animal) } feed(animal: StructCat())
3:46 AM
mutating func の呼び出しはできるから、できてもいいじゃないかと思ったんだけど・・・
3:46 AM
もし、できるとすると
3:46 AM
protocol Animal { mutating func eat() mutating func copyFrom(_ other: Self) }
3:46 AM
↑代入は Self を取る mutating func と等価だから、 Selfを使っちゃって、Existentialが使えなくなる