我开始学习swift是通过苹果公司提供的swift上的iBook-The swift Programming Language。这本书说要创建一个空字典,应该使用[:],就像声明数组为[]一样:

我声明一个空数组,如下所示:

let emptyArr = [] // or String[]()

但是在声明空字典时,我得到语法错误:

let emptyDict = [:]

如何声明一个空字典?


当前回答

在Swift中声明和初始化字典

字符串字典

var stringDict: [String: String] = [String: String]()

OR

var stringDict: Dictionary<String, String> = Dictionary<String, String>()

Int字典

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

OR

var stringDict: Dictionary<String, Int> = Dictionary<String, Int>()

AnyObject字典

var stringDict: [String: AnyObject] = [String: AnyObject]()

OR

var stringDict: Dictionary<String, AnyObject> = Dictionary<String, AnyObject>()

字符串数组字典

var stringDict: [String: [String]] = [String: [String]]()

OR

var stringDict: Dictionary<String, Array<String>> = Dictionary<String, Array<String>>()

字符串字典数组

var stringDict: [[String: String]] = [[String: String]]()

OR

var stringDict: Array<Dictionary<String, String>> = Array<Dictionary<String, String>>()

其他回答

迅速:

var myDictionary = Dictionary<String, AnyObject>()
var emptyDictionary = [String: String]()

var populatedDictionary = ["key1": "value1", "key2": "value2"]

注意:如果你打算改变字典的内容,那么就把它声明为一个变量(var)。你可以将一个空字典声明为常量(let),但如果你想要改变它,这将是毫无意义的,因为常量值在初始化后不能被改变。

当你在Swift中声明任何东西时,你需要显式地告诉数据类型或类型可以推断。

斯威夫特3

下面的示例声明了一个字典,其中key为Int类型,value为String类型。

方法1:初始化器

let dic = Dictionary<Int, String>()

方法二:简写语法

let dic = [Int:String]()

方法3:字典直译

var dic = [1: "Sample"]
// dic has NOT to be a constant
dic.removeAll()

您可以使用以下代码:

var d1 = Dictionary<Int, Int>()
var d2 = [Int: Int]()
var d3: Dictionary<Int, Int> = [Int : Int]()
var d4: [Int : Int] = [:]

在Swift中声明和初始化字典

字符串字典

var stringDict: [String: String] = [String: String]()

OR

var stringDict: Dictionary<String, String> = Dictionary<String, String>()

Int字典

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

OR

var stringDict: Dictionary<String, Int> = Dictionary<String, Int>()

AnyObject字典

var stringDict: [String: AnyObject] = [String: AnyObject]()

OR

var stringDict: Dictionary<String, AnyObject> = Dictionary<String, AnyObject>()

字符串数组字典

var stringDict: [String: [String]] = [String: [String]]()

OR

var stringDict: Dictionary<String, Array<String>> = Dictionary<String, Array<String>>()

字符串字典数组

var stringDict: [[String: String]] = [[String: String]]()

OR

var stringDict: Array<Dictionary<String, String>> = Array<Dictionary<String, String>>()