:ブール値またはnil比較は高速ですか?私は次のように私はクラスを持っスウィフトのコードを書いています
class Note
{
var isDeleted:Bool = false
var deletedDateTime:Date!
}
はノートで満たされ、私は比較に基づいてフィルタを作成したい場合、私はどちらかができているデータソースがあるとisDeleted
と比較するか、deletedDateTime
と比較することができます。次の2つのステートメントからどちらが速くなるでしょうか:
var dataSource:[Note] = [Note]()
// fill the datasource with objects
dataSource.filter({$0.isDeleted == false}) // 1
dataSource.filter({$0.deletedDateTime == nil}) //2
誰でも私を導くことができますか?
私はどちらかをチェックすることで巨大な時間差が生じないと信じています –
大きな違いがあるのではないかと疑いますが、あなたは何を測定しましたか? –
最下位レベルでは、両方とも値をロードし、ゼロであるかどうかをチェックします。実行時間に差がある場合は、ナノ秒のオーダーになるでしょう。ここではマイクロ最適化について心配するのではなく、可能な限りコードを明確にすることに集中してください。 'boolean'値はより明示的です:' isDeleted'をテストすることは、あなたがしていることを明確に示します。存在しない 'deletedDateTime'のチェックは間接です。それは明らかではない。良い妥協点は、 'boolean'値を取り除き、' isDeleted'プロパティを持つことです。 –