[https://twitter.com/freddi:embed]
皆さんのSwiftリテラルの深い理解への導きと、脱「リテラル初心者」の手助けをさせていただきます。Swift CodeからSIL、そしてLLVM IRコードまでの「リテラルオブジェクト」の旅を見て、コード上のただの文字列であるリテラルが「どのようにして私達(そしてアプリのユーザー)の手元にデータとして渡される準備が整うか」を、「Intrinsic Protocols(組み込みプロトコル)」とともに見ていきます。また、そこから「既存のIntrinsic Protocolsを利用したリテラル活用術」と、「Swift5.0 のリテラルのための新機能」にもフォーカスしていきます。一緒にSwiftのリテラルの世界を覗いて、Swiftリテラル初心者から大きな一歩を踏み出してみませんか?
Swiftのリテラルを普段と違う麺から理解するお話をします。
この42というリテラルがSwiftのIntになるまでを知ることで深い世界が分かる。
SILでは型の情報とリテラルを活用する
たとえばIntの+演算子を呼んだとき、_valueを利用して、足し算である関数に引数として渡す。
次はリテラルから直接オブジェクトが生成できることについて
プロトコルが大きく関わっています
CGFloatで例が見れます
どういうプロトコルの組み込みがあるか分かる
リテラルから表現できるIntやFloatなどはこのプロトコルに準拠している
これをうまく活用しているのがCGFloat
CPUアーキテクチャごとに効率的に扱えるFloat型を提供している
Swift5.0から、
解釈優先度が変わる。
SILを見比べて復習してみてください。
この後共有するスライドに加筆します。
リテラルを知る切っ掛けやSwiftへのレイヤーの深い興味の種になれば幸いです。
今日はありがとうございました。