簡體   English   中英

在Swift中為自定義類重載等價(==)運算符

[英]Overloading equivalence (==) operator for custom class in Swift

是否可以為該自定義類中的自定義類重載等價(==)運算符。 但是我知道可以讓這個運算符重載在類范圍之外。 感謝任何示例代碼。 提前致謝。

添加全局功能。 例如:

class CustomClass {
    var id = "my id"
}

func ==(lhs: CustomClass, rhs: CustomClass) -> Bool {
    return lhs == rhs
}
func !=(lhs: CustomClass, rhs: CustomClass) -> Bool {
    return !(lhs == rhs)
}

在Swift 2中使用Equatable協議

class CustomClass: Equatable {
    var id = "my id"
}

func ==(left: CustomClass, right: CustomClass) -> Bool {
    return left.id == right.id
}

在Swift 3中使用Equatable協議

class CustomClass {
    var id = "my id"
}

extension CustomClass: Equatable {
    static func ==(lhs: CustomClass, rhs: CustomClass) -> Bool {
        return lhs.id == rhs.id
    }
}

不,運算符使用全局函數重載。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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