Category Archives: Swift

Swift2.0となり多くの関数やクラスが追加、削除されました。その中の幾つかを紹介したいと思います。

・実装を隠したい場合用いる構造体
実装する型を隠蔽するための型が作られました。これは実装がArrayやDictionaryにかかわらず、同じ型として扱うことができるようになります。

・struct AnyForwardCollection
前方向コレクションとして扱うことができます。Indexは常に増えることしかできず、減少させることはできません。
・struct AnyBidirectionalCollection
双方向コレクションとして扱うことができます。Indexは増減させる事ができます。最後から参照することはできません。
・struct AnyRandomAccessCollection
コレクションとして扱うことができます。Indexは増減させる事ができます。最後から参照することもできます。
・protocol AnyCollectionType
これらの構造体はAnyCollectionTypeを実装しています。このプロトコルが実装されている場合、===と!==を使うことができます。AnyCollectionTypeである場合、ラップしているコレクションに対して、’==‘や’!=‘を行った時と同様の結果が得られます。

・struct AnyGenerator
Sequenceとしても扱えるGeneratorとして用いることができます。
・struct AnySequence
配列操作が可能な型として隠ぺいすることができます。

・CFunctionPointerがなくなる
影響はよくわからない。

・CollectionTypeの必要なメソッドが追加
countやmapなどほとんどのコレクションで実装されていた機能がCollectionTypeに追加されました。これによってCollectionType全般を扱うような関数で扱える幅が増えました。

・mapなどの関数が削除
CollectionTypeに実装されるようになったので、実質影響はないがコンパイルエラーになるので修正は必要

・protocol CustomPlaygroundQuickLookable
実装することで、Playgroundで値が表示されるようになります。

・protocol ErrorType
実装されているenumをthrowすることができます。