let cats: [Cat] = [Cat()] let animals: [Animal] = cats 一瞬、↑みたいなケースで cats は animals にコピーされないからインスタンスの型という概念が成り立たないかと思ったけど、コピーされないのはあくまでバッファであって、インスタンス自体の領域は別だからやっぱりインスタンスの型で判断できる気がする。animals から cats に as で戻せなくなるのか。 (edited)Optional の is や as もややこしくなるな・・・。