3.4.4 字典
Swift言語提供兩種集合類型來存儲數據:數組和字典。數組是一個同類型的序列化列表集合。而字典是一個可以運用相似於鍵的獨一標識符,來獲取值的非序列化集合。
字典是一種存儲多個相反類型的值的容器。每個值value都關聯獨一的鍵key。鍵作為字典中的這個值數據的標識符。
和數組不同的是,字典中的元素並沒有詳細的順序,也就是說字典是無序寄存元素的。並且和Object-C中的字典對象不同的是,在Swift言語中,在某個特定字典中可以存儲的鍵和值,必需提早定義它們的類型,可以經過顯性類型標注或許類型推斷,來定義鍵和值的類型。這意味這字典不會由於拔出了一個錯誤類型的值,而招致順序出錯。這也意味著當您在字典中取回數值時,可以確定它的類型。
字典的創立
Swift的字典寫法是Dictionary<KeyType,ValueType>,KeyType是您想要貯存的鍵的數據類型,ValueType是您想要貯存值的數據類型。這裡的KeyType可以運用字符串String、整形Int、雙精度Double、和布爾Bool類型。
1 var diallingCodes1 =Dictionary<String, String>() 2 var diallingCodes2 =["010":"北京", "021":"上海", "0592":"廈門"]
在第一行代碼中,diallingCodes1被定義為Dictionary<String, String>()類型,即這個字典的鍵和值的類型都是String。由於diallingCodes1被var定義為變量,所以您可以在之後的代碼中,添加或編輯它的內容。
在第二行代碼中,給diallingCodes2字典對象設置了初始值。由於在初始值中的鍵和值的類型都是String,所以diallingCodes2的類型被推斷為Dictionary<String, String>()類型。
字典的讀取和編輯
我們可以運用下標語法,經過在字典中設置的鍵,取得對應的值。
1 let diallingCodes =["010":"北京", "021":"上海", "0592":"廈門"] 2 print(diallingCodes["010"]) //輸入後果為:Optional("北京")
經過下標語法,還可以往字典中添加新的元素:
1 var diallingCodes = ["010":"北京", "021":"上海", "0592":"廈門"] 2 diallingCodes["020"] = "廣東" 3 print(diallingCodes["020"]) //輸入後果為:Optional("廣東")
假如在下標中的鍵名曾經存在於字典中,則會修正該鍵對應的值。
1 var diallingCodes =["010":"北京", "021":"上海", "0592":"廈門"] 2 diallingCodes["020"]= "廣東" 3 diallingCodes["020"]= "廣州" 4 print(diallingCodes["020"]) //輸入後果為:Optional("廣州")
也可以運用字典的updateValue()辦法,修正指定鍵的值:
1 var diallingCodes =["010":"北京", "021":"上海", "0592":"福州"] 2 diallingCodes.updateValue("廈門", forKey: "0592") 5 print(diallingCodes["0592"]) //輸入後果為:Optional("廈門")
當需求刪除字典中的某對鍵值時,可以運用removeValueForKey()辦法,或許將某個鍵的值設為nil,也能起到相反的作用。以下兩行代碼,都能在字典中刪除鍵為"020"的鍵值對:
1 diallingCodes["020"]= nil 2 diallingCodes.removeValue(forKey:"020")
字典的遍歷
您可以運用 for-in 循環,來遍歷某個字典中的鍵或值,也可以同時遍歷字典中的鍵值對。以下的代碼中,對字典的鍵停止了遍歷操作:
1 var diallingCodes =["010":"北京", "021":"上海", "0592":"廈門"] 2 for key in diallingCodes.keys 3 { 4 print(key) 5 }
經過遍歷字典對象的keys屬性,輸入了字典中一切鍵的信息:
021 010 0592
經過訪問字典對象的values屬性,可以遍歷字典的一切的值:
1 let diallingCodes =["010":"北京", "021":"上海", "0592":"廈門"] 2 for value indiallingCodes.values 3 { 4 print(value) 5 }
以下代碼的輸入後果為:
上海 北京 廈門
每一個字典中的數據項,都由(key, value)元組所組成,所以您可以運用暫時常量或許變量來分解這些元組,以下代碼是對字典的鍵值對停止遍歷輸入:
1 let diallingCodes =["010":"北京", "021":"上海", "0592":"廈門"] 2 for (key, value) indiallingCodes 3 { 4 print(key+":"+value) 5 }
代碼在控制台輸入的後果為:
021:上海 010:北京 0592:廈門 3.5 結語
新人學習蘋果開發,完全可以保持Objective-C,從Swift言語動手。Swift言語在3.0版本後將變得波動起來,所以在本章為讀者解說了Swift 3.0言語的根本概念和語法,這些內容都是在停止IOS開發時必需掌握的根底知識,在開發進程中每時每刻都會運用到這些知識點。所以請純熟掌握本章的一切內容,為日後的開發任務打下堅實的根底!
一團體寫書,難免會有缺乏和纰漏,歡送大家經過這個郵箱:[email protected]
將你的意見和建議通知我們,感激!
關注我的微信大眾號“酷課堂”,獲取更多學習資源,歡送留言交流。
【圖書連載16:字典】的相關資料介紹到這裡,希望對您有所幫助! 提示:不會對讀者因本文所帶來的任何損失負責。如果您支持就請把本站添加至收藏夾哦!