我开始学习swift是通过苹果公司提供的swift上的iBook-The swift Programming Language。这本书说要创建一个空字典,应该使用[:],就像声明数组为[]一样:
我声明一个空数组,如下所示:
let emptyArr = [] // or String[]()
但是在声明空字典时,我得到语法错误:
let emptyDict = [:]
如何声明一个空字典?
我开始学习swift是通过苹果公司提供的swift上的iBook-The swift Programming Language。这本书说要创建一个空字典,应该使用[:],就像声明数组为[]一样:
我声明一个空数组,如下所示:
let emptyArr = [] // or String[]()
但是在声明空字典时,我得到语法错误:
let emptyDict = [:]
如何声明一个空字典?
当前回答
var dictList = String: swift中字典的字符串 var arrSectionTitle =字符串数组在swift
其他回答
你必须给字典一个类型
// empty dict with Ints as keys and Strings as values
var namesOfIntegers = Dictionary<Int, String>()
如果编译器可以推断类型,则可以使用较短的语法
namesOfIntegers[16] = "sixteen"
// namesOfIntegers now contains 1 key-value pair
namesOfIntegers = [:]
// namesOfIntegers is once again an empty dictionary of type Int, String
除非类型信息可用,否则不能使用[:]。
在这种情况下,你需要显式地提供它:
var dict = Dictionary<String, String>()
Var意味着它是可变的,所以你可以向它添加条目。 相反,如果你让它成为一个let,那么你就不能进一步修改它(let意味着常量)。
例如,如果可以推断类型信息,则可以使用[:]简写符号
var dict = ["key": "value"]
// stuff
dict = [:] // ok, I'm done with it
在上一个例子中,通过第一行就知道字典的类型为dictionary <String, String>。注意,您不必显式地指定它,但它已经被推断出来了。
var parking = [Dictionary < String, Double >()]
^这将为[string:double]输入添加一个字典
我也在玩这个。看起来很奇怪,你可以声明一个空字典,然后像这样添加一个键/值对:
var emptyDictionary = Dictionary<String, Float>()
var flexDictionary = [:]
emptyDictionary["brian"] = 4.5
flexDictionary["key"] = "value" // ERROR : cannot assign to the result of this expression
但是你可以通过使用"Any"类型创建一个接受不同值类型的Dictionary,如下所示:
var emptyDictionary = Dictionary<String, Any>()
emptyDictionary["brian"] = 4.5
emptyDictionary["mike"] = "hello"
您可以使用以下代码:
var d1 = Dictionary<Int, Int>()
var d2 = [Int: Int]()
var d3: Dictionary<Int, Int> = [Int : Int]()
var d4: [Int : Int] = [:]