gpt4 book ai didi

swift - 初始化数组中的索引

转载 作者:行者123 更新时间:2023-11-28 13:51:31 26 4
gpt4 key购买 nike

我正在创建一个具有自动索引的类。我已经编写了下面有效的代码,但包含一个我无法解决的非常草率的方法。我在下面设计了一个简单的 Playground 演示。我要求这样做是为了改进我的代码和我对 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
}

这在 Playground 上对我有用

关于swift - 初始化数组中的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54539515/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com