如何制作一个class宽的身份证号码

How to make a class-wide ID number

也许我只是在读旧书material,但我看不出有什么方法可以做一些看似很简单的事情。

我有一个名为 Robot 的 class,每个实例都需要一个唯一的 idid 只是一个 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 结构并继续。