小粒ネタです。Collectionクラスが空かどうか判定する際、count == 0よりisEmptyプロパティを使ったほうがいいのはなぜか答えられますか?
これは可読性だけの問題ではありません。
isEmptyのドキュメントにはこう書いてあります。1
When you need to check whether your collection is empty, use the
isEmptyproperty instead of checking that thecountproperty is equal to zero. For collections that don't conform toRandomAccessCollection, accessing thecountproperty iterates through the elements of the collection.
要は、処理速度の問題です。
CollectionがRandomAccessCollectionでない場合、たとえばBidirectionalCollectionなどはcountの値を返すために要素を全て走査しないといけないので、**O(N)のオーダーになります。しかし、isEmptyは空かどうかをチェックするだけなのでどのようなCollectionでも常にO(1)**のパフォーマンスが期待でき、高速です。
まあ考えてみればそりゃそうだという話ですが、こういう細かいところも意識して良いコードを書けるようにしていきたいですね。