【问题标题】:Swift: Initializing an array of dictionaries, where the key is a String, and value is a typeSwift:初始化一个字典数组,其中键是字符串,值是类型
【发布时间】:2017-09-25 03:23:48
【问题描述】:

我有一个存储字典的数组。字典有一个String 用于键,Tuple 用于值。它看起来像这样:

var mydict: [String: (key1: String, key2: String)]

我想用一个键来初始化这个数组,并用一个空数组来初始化一个值。

像这样:

var mydict: [String: (key1: String, key2: String)] = ["dict_key1" : []]

每次我尝试都会出错。有什么解决办法吗?

【问题讨论】:

  • 您不能使用空数组作为值,因为它被指定为两个字符串的元组。

标签: arrays swift dictionary swift3


【解决方案1】:

您不能用数组初始化元组值,因为它们是两种不同的类型。元组是一种独特的类型,它必须包含您指定的元素数量。因此,如果您将字典声明为存储 2 元素元组,则必须在其中存储带有两个元素的内容。因此,您可以使用以下内容初始化您的字典:

var mydict: [String: (key1: String, key2: String)] = ["dict_key1" : (key1: "", key2: "")]

但是,如果你想在字典中存储一个数组,我建议你直接输入字典:

var mydict: [String : [String]]

【讨论】:

  • 我想存储一个元组数组作为值,这可能吗?
  • 当然,你可以直接输入[String : [(key1: String, key2: String)]]
  • 你可以,但是如果我对你使用它的猜测是正确的,你可能会发现将它初始化为[:] 更方便,然后当你想附加一些东西时到数组你可以mydict["dict_key1", default: []].append(...)。打赌你不知道你能做到这一点。 Swift 很酷,不是吗?
猜你喜欢
  • 2018-03-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-11
相关资源
最近更新 更多