在Swift中初始化空字典数组

 鬼王守护灵 发布于 2023-01-11 04:06

我试图在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

-> [, ]

但是我无法弄清楚初始化一个空字典数组的语法.

我知道你可以有一个字典数组,因为用初始值初始化起作用:

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

var myDictArray = [myDict1]
myDictArray += myDict2

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

然而,这(你希望语法是这样的)失败:

var myNewDictArray: Dictionary[] = []

有错误 Cannot convert the expression's type 'Dictionary[]' to type 'Hashable'

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

3 个回答
  • 您需要为字典提供类型:

    var myNewDictArray: [Dictionary<String, Int>] = []
    

    要么

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

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

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

    要么

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

    2023-01-11 04:19 回答
  • 这将创建一个空的,不可变的字典:

    let dictionary = [ : ]

    如果你想要一个可变的:

    var dictionary = [ : ]

    这两个词典都默认为Dictionary<String?, AnyObject?>.

    2023-01-11 04:22 回答
  • 这不起作用的原因:

    var myNewDictArray: Dictionary[] = []
    

    是您在定义字典时需要为字典的键和值提供类型.这些行中的每一行都将创建一个包含字符串键和字符串值的空字典数组:

    var dictArray1: Dictionary<String, String>[] = Dictionary<String, String>[]()
    var dictArray2: Dictionary<String, String>[] = []
    var dictArray3 = Dictionary<String, String>[]()
    

    2023-01-11 04:24 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有