この前に引き続き The Swift Programming Language の脇道に逸れて、標準ライブラリーで定義されている Collection
について眺めていきます。今回は Collection
の基本概念についてを見ていってから、その特徴を特定の条件下でより際立たせた BidirectionalCollection
と RandomAccessCollection
の基本概念について確認していけたら良いなと思ってます。どうぞよろしくお願いしますね。
———————————————————————————————————————————————————— 熊谷さんのやさしい Swift 勉強会 #80
00:00 開始 01:02 定数に入れた String 型の値を変化させられる問題 01:24 プロトコルの存在意義 02:37 StringProtocol 特有の決まり事 04:26 NSString のサブクラスを String にキャストしたとき 04:40 プリミティブメソッド 06:43 定数な String の値を変化させる具体例 07:24 copy メソッドのオーバーライド 07:48 NSString の値を String の値に Objective-C ブリッジする 08:26 実装したコードの間違いを発見 10:03 実装したコードの間違いを修正 11:39 NSCopying 12:46 Objective-C ブリッジで生成した String は元のインスタンスの情報を引き継ぐ 14:05 String はブリッジ前の情報に復元可能 16:51 値型としての使用を意識した NSString 型からの継承 18:53 NSMutableString を String に振り替えたとき 21:03 NSCopying と NSMutableCopying 26:25 Collection 26:44 コレクションの巡回 27:21 文字列の count のお話 28:27 コレクションの巡回 28:47 シングルパスとマルチパス 31:15 コレクションにおけるマルチパス 31:40 コレクションの非破壊性 32:59 コンパイラーには認識できないプロトコル要件 34:48 非破壊性から導かれる性格 35:38 コレクションの範囲は有限 36:37 インデックスの順番で反復処理される 37:45 Collection プロトコルへの準拠 40:07 期待する性能 42:38 ジェネリックプログラミングでの留意点 43:59 コレクションの性能はインデックスに依存しがち 45:05 String の count について考えてみる 47:34 次回の展望 ————————————————————————————————————————————————————