今回からは再び本流に戻って The Swift Programming Language の The Basics の続きを眺めていきます。そんなセクションの始まりの辺りの About Swift 的な内容をおさらいしていっていますけれど、今日は「高度な型の導入」と「型安全」の紹介的なところを見てみることにしますね。よろしくお願いします。
—————————————————————————————————————— 熊谷さんのやさしい Swift 勉強会 #83
00:00 開始 00:11 構造体をパラメーターに渡したときはコピーされる? 00:45 C 言語の関数に Swift の構造体は渡せる? 01:03 objc_sync_enter と objc_sync_exit 03:41 Any に構造体を渡していいのか 05:23 最適化を気にしてみる 06:08 Any と AnyObject 07:06 id を Any で扱う 07:36 透過的に言語間の相互運用を行う仕様 09:27 API が求める Any に渡す値 10:59 __SwiftValue 13:27 ObjectIdentifier 17:05 Objective-C ブリッジ 20:33 Objective-C リテラル 22:42 タイマーで繰り返しテストするアイデア 23:47 実行環境に応じた Any 表現 27:55 Any 表現 30:35 Objective-C Interoperability 31:35 AnyObject に構造体を入れる 33:10 構造体のアドレスが同値になるケース 34:19 ObjectIdentifier の存在意義 35:41 文化を超えて相互運用することの難しさ 36:24 ObjectIdentfier と厳密等価比較の類似性 36:58 BridgeObjectiveC.swift 41:30 __SwiftValue が作られるタイミング 42:32 レイヤーをまたがなければ維持される可能性 43:44 NSRecursiveLock 45:53 排他制御とロックフリー 48:51 談笑タイム 49:52 AnyObject が描く世界 55:36 値型のラップが実装された PR 57:10 次回の展望 ——————————————————————————————————————