泛型 – 使用Swift语言的自定义对象的泛型类型
我想知道有没有办法在下面的泛型函数中比较两个泛型类型实例与==运算符:
func compare<T>(T a,T b) -> Bool { if a == b{ // do something return true; }else{ // do another thing return false; } } 这是我的自定义对象: class MyObj{ var id = 3 var name: String? }
来自Apple Developer Resources,
func findIndex<T: Equatable>(array: T[],valueToFind: T) -> Int? { for (index,value) in enumerate(array) { if value == valueToFind { return index } } return nil } 以下是他们的文档中的示例,说明如何覆盖== struct MyStruct: Equatable { var name = "Untitled" } func == (lhs: MyStruct,rhs: MyStruct) -> Bool { return lhs.name == rhs.name } let value1 = MyStruct() var value2 = MyStruct() let firstCheck = value1 == value2 // firstCheck is true value2.name = "A New Name" let secondCheck = value1 == value2 // secondCheck is false 在你的情况下你会这样做, class MyObj{ var id = 3 var name: String? } func == (lhs: MyObj,rhs: MyObj) -> Bool { return lhs.id == rhs.id } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |