2016年のtry! Swiftで紹介されてから誰もが知るところとなったType-erasure、これを採用するメリットを型とパフォーマンスの面から紐解きます。また、stdlibのAnySequenceの実装をヒントに、効率が良くパワフルなType-erasureの実装を探っていきましょう。
型とパフォーマンスで見るType-erasureの利点
今日のコンテンツは用意しています。Swift4.1、Xcode9.3ベータが必要です。
これで大事なことは伝えられたので好きなことを話します。
型消去はご存知ですか?
知らない人は勉強して下さい。
どこで必要か知っています。associatedTypeがある時。
Animalが何者かを知る必要がある。
Prtocolでしょうか
SILで知ることができますね?
存在型が招待と書いてある。
実際プロダクトコードを描いて困った人がいると思う
Genericsにったらダメとか
ここで使えるのが型消去
StandardLibraryのAnySequenceがあるので紹介
気になるパフォーマンス
メソッド呼び出しのオーバーヘッドを消す
裏技(一般的に使えるようにするプロポーザルがでている)
まだ。2回テーブル参照されるう
時間無いので説明飛ばします
各方消去のいいとこ悪いとこをしましました
つまりタイトル詐欺です、銀の弾丸はないということでした。遊びたい方はリポジトリで遊んでみて下さい。
発表を終わりますありがとうございました。