启动数组中的索引



我正在创建一个具有自动索引功能的类。 我已经编写了下面的代码,它有效,但包含一个我无法解决的非常草率的方法。 我在下面设计了一个简单的游乐场演示。 我要求这样做是为了改进我的代码和我对 Swift 的了解。

请注意,我正在创建一个名为 tokenParts 的索引对数组。索引被添加到类中,带有一个函数"getUniqueIdentifier(("。 如下所述,它可以工作,但我觉得我没有正确使用它。

我用语句"tokenParts.append(..." 在这个语句中,我有"index: 1",因为 Swift 说我必须有一些东西用于索引。 此赋值被忽略,但我无法确定如何在追加语句中删除此参数。

我确信有更好的方法。

class IndexPairs
{
   var index: Int
   var token: String
   var label: String
   private static var identifierFactory = -1
   private static func getUniqueIdentifier() -> Int {
    identifierFactory += 1
    return identifierFactory
    }
    init(index: Int, token: String, label: String) {
        self.index = IndexPairs.getUniqueIdentifier()
        self.token = token
        self.label = label
    }
}
 var tokenParts: [IndexPairs] = []
for i in 0...4 {
    tokenParts.append(IndexPairs( index: 1, token : "token"+String(i), label: "label"+String(i))) //index: 1 -- works
}
for i in 0...4 {
    print("(tokenParts[i].index) (tokenParts[i].token) (tokenParts[i].label)")
}

打印循环显示以下内容,因此它正在工作。 打印:

0 token0 label0
1 token1 label1
2 token2 label2
3 token3 label3
4 token4 label4   

只需将初始化函数更改为

init(token: String, label: String) {
    self.index = IndexPairs.getUniqueIdentifier()
    self.token = token
    self.label = label
}

这在操场上对我有用

最新更新