字典是一種無順序的集合,在宣告時,也都必須明確宣告類型,字典中的一個元素,是由一個 key跟一個value所組成的。
Dictionary<KeyType, ValueType>
宣告字典
var dic1:[Int:String]
// 這種結構用來表示字典類型,前面的為key後面的為value
另外一種宣告方式
var dic2:Dictionary<Int,String>
// 與上面的宣告方式,是一樣的效果
字典創建與賦值
dic1 = [1:"1",2:"2",3:"3"]
dic2 = Dictionary(dictionaryLiteral: (1,"1"),(2,"2"),(3,"3"))
字典型別推斷
var dic3 = ["1": "one"]
空字典
var dic4: [Int:Int] = [:]
var dic5:Dictionary<Int,Int> = Dictionary()
字典中的元素個數
dic1.count
// print出來是 3
判斷字典是否為空
if dic4.isEmpty {
print("Empty")
}
// 印出Empty
透過具體key的方式可以獲得或是修改對應的value
dic1[2]
// 獲得值
dic1[1] = "0"
// 修改值
dic1[4] = "4"
// 添加新的值
上面的程式,dic1[1] = “0”與dic1[4] = "4" 是完成了相同的操作,簡單理解就是原本有的可以進行修改,原本沒有的則為添加一個新的進去。
對key value進行更新
dic1.updateValue("1", forKey: 1)
updateValue(value, forKey: )這個方法用來更新一個已經存在的值,前面第一個參數為新值,後面的則是要進行修改的值,用這個方法時會return一個 Optional 可選類型的值,假設字典中有這個值就會進行修改return一個可選類型,假設沒有這個值則會返回nil,在開發中可以利用 if let 來進行判斷。
if let oldValue = dic1.updateValue("One", forKey: 1) {
print("Old Value (oldValue)")
}
// 印出Old Value 1
if let value = dic2[1] {
print("The Value is (value)")
}
// 印出 The Value is 1
刪除
dic1.removeValue(forKey: 1)
全部刪除
dic1.removeAll()
遍歷
for item in dic2.keys {
print(item)
}
for item in dic2.values {
print(item)
}
for item in dic2 {
print(item)
}
for (key, value) in dic2 {
print("(key), (value)")
}
for item in dic2.keys.sorted(by: >) {
print(dic2[item]!)
}
接下來,是Loops的介紹