簡體   English   中英

比較Swift中的兩個對象

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM