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