Avatar
↓多分出てなかった話で、 Contravariant だと親→子の代入ができる // Contravariant let animals: List<Animal> = ... let cats: List<Cat> = animals // ✅ OK // ↓ animals に Cat が set されても問題ない cats.set(Cat(...), at: 0) // Covariant let animals: List<Animal> = ... let cats: List<Cat> = animals // ⛔ NG // ↓任意の Animal が返って来得るので破綻 let cat: Cat = cats.get(at: 0)