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することができます。