gpt4 book ai didi

arrays - 如何创建字典数组?

转载 作者:可可西里 更新时间:2023-10-31 23:53:39 24 4
gpt4 key购买 nike

编程新手!

我正在尝试在 Swift 中的结构中创建字典数组,如下所示:

var dictionaryA = [
"a": "1",
"b": "2",
"c": "3",
]
var dictionaryB = [
"a": "4",
"b": "5",
"c": "6",
]
var myArray = [[ : ]]
myArray.append(dictionaryA)
myArray.append(dictionaryB)

这在 Playground 上运行良好,但当我将它放入 Xcode 项目时,在结构内部,带有附加函数的行产生错误“Expected declaration”。

我也尝试过使用 += 运算符得到相同的结果。

我怎样才能在结构中成功构造这个数组?

最佳答案

来自你的错误Expected declaration ,我假设你是这样做的:

struct Foo {
var dictionaryA = [
"a": "1",
"b": "2",
"c": "3",
]
var dictionaryB = [
"a": "4",
"b": "5",
"c": "6",
]
var myArray = [[ : ]]
myArray.append(dictionaryA) // < [!] Expected declaration
myArray.append(dictionaryB)
}

这是因为you can place only "declarations" in the struct body , 和 myArray.append(dictionaryA)不是声明。

您应该在其他地方执行此操作,例如在初始化程序中。以下代码编译。

struct Foo {
var dictionaryA = [
"a": "1",
"b": "2",
"c": "3",
]
var dictionaryB = [
"a": "4",
"b": "5",
"c": "6",
]
var myArray = [[ : ]]

init() {
myArray.append(dictionaryA)
myArray.append(dictionaryB)
}
}

但是正如@AirspeedVelocity 提到的,您应该提供有关 myArray 的更多信息, 或 myArray将是 Array<NSDictionary>我认为您不会想到这一点。

无论如何,正确的解决方案会因您真正尝试做的事情而异:

也许也许不是,你想要的是这样的:

struct Foo {
static var dictionaryA = [
"a": "1",
"b": "2",
"c": "3",
]
static var dictionaryB = [
"a": "4",
"b": "5",
"c": "6",
]

var myArray = [dictionaryA, dictionaryB]
}

但是,我不知道,你为什么不:

struct Foo {

var myArray = [
[
"a": "1",
"b": "2",
"c": "3",
],
[
"a": "4",
"b": "5",
"c": "6",
]
]
}

关于arrays - 如何创建字典数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28410218/

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