如何制作一个class宽的身份证号码
How to make a class-wide ID number
也许我只是在读旧书material,但我看不出有什么方法可以做一些看似很简单的事情。
我有一个名为 Robot
的 class,每个实例都需要一个唯一的 id
。 id
只是一个 Int
应该是 1,2,3... 正常的解决方案是有一个 class var MaxId
你在 init()
然后将其分配给实例的 id
.
Swift (4?) 没有 class 变量,但在 class 级别有计算属性。但是,我对如何使用它来做 MaxId
有点迷惑。我是不是漏掉了一些非常明显的东西?
静态变量本质上是class变量。在操场上试试这个:
class Numbered {
static var serial: Int = 1
let myID: Int
init() {
myID = Numbered.serial
Numbered.serial = Numbered.serial + 1
}
}
print(Numbered().myID)
print(Numbered().myID)
a unique id. The id is simply an Int that should be 1,2,3.
您当然可以使用静态 属性 并递增它,但请注意
这是两个不同的要求。如果您 真正 想要的只是一个唯一的 ID,则不需要“最小可用整数”方法。只需使用内置的 UUID 结构并继续。
也许我只是在读旧书material,但我看不出有什么方法可以做一些看似很简单的事情。
我有一个名为 Robot
的 class,每个实例都需要一个唯一的 id
。 id
只是一个 Int
应该是 1,2,3... 正常的解决方案是有一个 class var MaxId
你在 init()
然后将其分配给实例的 id
.
Swift (4?) 没有 class 变量,但在 class 级别有计算属性。但是,我对如何使用它来做 MaxId
有点迷惑。我是不是漏掉了一些非常明显的东西?
静态变量本质上是class变量。在操场上试试这个:
class Numbered {
static var serial: Int = 1
let myID: Int
init() {
myID = Numbered.serial
Numbered.serial = Numbered.serial + 1
}
}
print(Numbered().myID)
print(Numbered().myID)
a unique id. The id is simply an Int that should be 1,2,3.
您当然可以使用静态 属性 并递增它,但请注意 这是两个不同的要求。如果您 真正 想要的只是一个唯一的 ID,则不需要“最小可用整数”方法。只需使用内置的 UUID 结构并继续。