Eyes, JAPAN Blog > SwiftでNSDate型の比較をprotocolを使って楽する

SwiftでNSDate型の比較をprotocolを使って楽する

Shoma Saito

この記事は1年以上前に書かれたもので、内容が古い可能性がありますのでご注意ください。

Swiftは標準で様々なprotocolが用意されていて、それを使うことによって簡単に比較演算子などを使うことが出来るようになります。

ちなみに普通にNSDateの比較をしようとするとこんな感じになります


let before = NSDate()
let after = NSDate()
before.compare(after) == .OrderedAscending

意味がわかりませんね。Swiftっぽくない。

これをprotocolを使うと


before < after

みたいに書くことが出来るようになります

Q. どうやるのか

A. こうやります


extension NSDate: Comparable {}
public func <(before: NSDate, after: NSDate) -> Bool {
  return before.compare(after) == .OrderedAscending
}
public func ==(before: NSDate, after: NSDate) -> Bool {
  return before.compare(after) == .OrderedSame
}

こう書くことによってどこでも<や>=、!=がつかえるようになります

Comments are closed.