Date
是Comparable
&Equatable
(从Swift 3开始)
此答案是@Ankit Thakur的答案的补充。
从Swift 3开始,Date
结构(基于基础NSDate
类)采用Comparable
和Equatable
协议。
Comparable
需要Date
实现运营商:<
,<=
,>
,>=
。
Equatable
要求Date
实施==
操作员。
Equatable
允许Date
使用!=
运算符的默认实现(与运算Equatable
==
符实现相反)。
下面的示例代码将练习这些比较运算符,并使用print
语句确认哪些比较正确。
比较功能
import Foundation
func describeComparison(date1: Date, date2: Date) -> String {
var descriptionArray: [String] = []
if date1 < date2 {
descriptionArray.append("date1 < date2")
}
if date1 <= date2 {
descriptionArray.append("date1 <= date2")
}
if date1 > date2 {
descriptionArray.append("date1 > date2")
}
if date1 >= date2 {
descriptionArray.append("date1 >= date2")
}
if date1 == date2 {
descriptionArray.append("date1 == date2")
}
if date1 != date2 {
descriptionArray.append("date1 != date2")
}
return descriptionArray.joined(separator: ", ")
}
样品使用
let now = Date()
describeComparison(date1: now, date2: now.addingTimeInterval(1))
// date1 < date2, date1 <= date2, date1 != date2
describeComparison(date1: now, date2: now.addingTimeInterval(-1))
// date1 > date2, date1 >= date2, date1 != date2
describeComparison(date1: now, date2: now)
// date1 <= date2, date1 >= date2, date1 == date2
let d1 = Date() ; let d2 = Date() ; if d1 > d2 { }
在我的Xcode 8测试版6.作品