Closed6
わいわいswiftc #1(55分くらいから)を見ながらメモ
存在型(Existential Type)の説明部分から
protocol自体は型ではないが、swiftでは型としても扱える。それが存在型。
- GADT is 何?
- enumの各ケースに型パラを取れるような機能と思って良い
- genericsの機能を使って存在型を表すことができる。それをGADTによるエンコードと..
- swiftがADTがenumにタイプしてる(よくわからず)
- 要は具体的な型を消したい、enumのcaseとして型パラがとれてるが、元のenumには型パラは入っていない、caseとしては持っているが元には無いという仕組みで他の言語は存在型を表しているがswiftはそれをやっていない珍しい言語
一般的に(swiftではなく)Existential Typeはなにか?一言でいうとペア
ある型Xとその型を使ったT
こういった関数を抽象的に扱う仕組みとして存在型がある
Swiftにおける存在型
あるAnimalプロトコルにconfirmした型X
その型Xを使った型T(∃は存在量化子)
Swift扱える存在型はこの形のみ(Generalized existentialsが入ると,の左側の制約を増やせる)
ここからは以下記事で説明がはじまる。
この問題は5.9でも治ってなかった。
このスクラップは2023/10/05にクローズされました