Avatar
Farm が struct だった場合に Farm<Cow> as Farm<Animal> できるとして、どういう不整合が発生する可能性があるのか
あー、わかった
11:42 AM
class Animal {} class Cow : Animal {} class Sheep : Animal {} class Fence<T> { var animal: T? = nil } struct Farm<T> { var fence: Fence<T> = Fence<T>() } func buySheep(farm: Farm<Animal>) { farm.fence.animal = Sheep() } let farm = Farm<Cow>() buySheep(farm: farm as Farm<Animal>)
11:43 AM
Farm が Generic なクラスを持ってたらだめってことでした。