我创造,我想成为哈希的和Equatable一个新的类,所以我可以很容易地通过它循环,类下面的例子是:自动执行的唯一ID的哈希的类
class MyClass: Hashable {
var uid: Int
var myName: String
var myAge:Int
var hashValue: Int {
return self.uid
}
init(uid: Int, name: String, age: Int) {
self.uid = uid
self.myName = name
self.myAge = age
}
}
func ==(lhs: MyClass, rhs: MyClass) -> Bool {
return lhs.uid == rhs.uid
}
的问题是,现在我必须通过UID当我创建的类,如下所示:
let user1 = MyUser(uid: 1, name: "Me", age: 36)
我想使UID静态和自动生成创建,像这样每个对象一个新问题:
let user2 = User(name: "The other guy", age: 23)
在这种情况下,user2的uid将等于2,它只是一个set属性,它不需要获取get,因为它应该对使用该类的人完全透明。
但是每次我试图改变UID是一个static var
或class var
我不能让它提前与Hashable protocol
由于符合
这也正是我一直在寻找!谢谢! – Icaro