[英]Compare two objects in Swift
如何比較兩個通用對象。 下面是進行比較的示例代碼,此行elem> value引發錯誤,提示Could not find overload for '>' that accepts the supplied arguments
func index<T : Equatable>(array: T[], value: T) -> Int {
for (index, elem) in enumerate(array) {
if elem > value {
return index
}
}
return array.count
}
從Swift參考:
Equatable協議可以確定相同類型的兩個值是否相等。
協議中定義了一個必需的運算符重載:==。
無法保證Equatable
對象必須實現>
運算符,這可以解釋您的錯誤。
看看Comparable
。 請注意,可比只需要重載<
和==
運算符。
但是,如果不是a < b
也不是a == b
,則可以假定a > b
。
您想要可比的,而不是平等的。 等於的只有==
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.