在Swift中初始化空数组的字典

我试图把我的头围绕在初始化空数组在Swift。

对于字符串数组,它非常直接:

var myStringArray: String[] = []
myStringArray += "a"
myStringArray += "b"

-> ["a","b"]

和整数

var myIntArray: Int[] = []
myIntArray += 1
myIntArray += 2

-> [1,2]

它也适用于其他类型的对象,如NSImage对象:

let path = "/Library/Application Support/Apple/iChat Icons/Flags/"
let image1 = NSImage(byReferencingFile: path + "Brazil.png")
let image2 = NSImage(byReferencingFile: path + "Chile.png")

var myImageArray: NSImage[] = []
myImageArray += image1
myImageArray += image2

-> [<NSImage 0x7fe371c199f0 ...>,<NSImage 0x7fe371f39ea0 ...>]

然而,我不能找出语法来初始化空数组的字典。

我知道你可以有一个数组的字典,因为初始化与初始值工程:

let myDict1 = ["someKey":"someValue"]
let myDict2 = ["anotherKey":"anotherValue"]

var myDictArray = [myDict1]
myDictArray += myDict2

-> [["someKey": "someValue"],["anotherKey": "anotherValue"]]

编辑:在下面的代码中有一个错误(混合myNewDictArray和myDictArray),当纠正它不工作,我说它做了。

如下:

let myDict1 = ["someKey":"someValue"]
let myDict2 = ["anotherKey":"anotherValue"]

var myNewDictArray: AnyObject = []
myDictArray += myDict1
myDictArray += myDict2

-> [["someKey": "someValue"],["anotherKey": "anotherValue"]]

然而(你会希望语法是)失败:

var myNewDictArray: Dictionary[] = []

错误无法转换表达式的类型“字典[]’类型’Hashable’

所以问题是什么是初始化一个空数组的字典项目的正确方法,为什么不这个语法var myNewDictArray:Dictionary [] = []工作?

你需要给字典的类型:
var myNewDictArray: [Dictionary<String,Int>] = []

要么

var myNewDictArray = [Dictionary<String,Int>]()

编辑:您也可以使用较短的语法:

var myNewDictArray: [[String:Int]] = []

要么

var myNewDictArray = [[String:Int]]()

相关文章

软件简介:蓝湖辅助工具,减少移动端开发中控件属性的复制和粘...
现实生活中,我们听到的声音都是时间连续的,我们称为这种信...
前言最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿...
【Android App】实战项目之仿抖音的短视频分享App(附源码和...
前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至...
因为我既对接过session、cookie,也对接过JWT,今年因为工作...