swift中dictionary字典的使用

來源:互聯網
上載者:User

Swift 字典用來儲存無序的相同類型資料的集合,Swift字典會強制檢測元素的類型,如果類型不同則會報錯。

Swift字典每個值(value)都關聯唯一的鍵(key),鍵作為字典中的這個值資料的標識符。

和數組中的資料項目不同,字典中的資料項目並沒有具體順序。我們在需要通過標識符(鍵)訪問資料的時候使用字典,這種方法很大程度上和我們在現實世界中使用字典查字義的方法一樣。

Swift字典的key沒有類型限制可以是整型或字串,但必須是唯一的。

如果建立一個字典,並賦值給一個變數,則建立的字典就是可以修改的。這意味著在建立字典後,可以通過添加、刪除、修改的方式改變字典裡的項目。如果將一個字典賦值給常量,字典就不可修改,並且字典的大小和內容都不可以修改。


// 建立字典// 建立一個特定類型的空字典,格式為:var dict = [KeyType: ValueType]()// 建立一個空字典,鍵的類型為 Int,值的類型為 String 的簡單文法:var dict01 = [Int: String]()print(dict01)        // 建立一個字典的執行個體:var dict02 :[Int:String] = [1:"One", 2:"Two", 3:"Three"]print(dict02)        var dict03 = ["name":"DevZhang", "job":"iOSDev", "company":"VSTECS"]print(dict03)
// 訪問字典// 我們可以根據字典的索引來訪問數組的元素,文法如下:var value = dict[key]let value01 = dict02[1]print(value01)        let value02 = dict03["name"]print(value02)
// 添加資料let value03 = dict02.updateValue("Four", forKey: 4)  //或 dict02[4] = "Four"print(value03)print(dict02)
// 修改字典// 方法1 使用 updateValue(forKey:) 增加或更新字典的內容。如果 key 不存在,則添加值,如果存在則修改 key 對應的值。格式為:dict.updateValue(value, forKey:key)方法返回Optional值。var value04 = dict02.updateValue("TwoTmp", forKey: 2)print(dict02)print(value04) // 方法2 通過指定的 key 來修改字典的值var value05 = dict02[3]print(value05)value05 = "ThreeTmp" // 修改無效print(dict02)dict02[3] = "ThreeTmp" // 修改有效print(dict02)
// 移除 Key-Value 對// 1 使用 removeValueForKey() 方法來移除字典 key-value 對。如果 key 存在該方法返回移除的值,如果不存在返回 nil 。let valueRemove01 = dict02.removeValueForKey(2)print(valueRemove01)print(dict02)        // 2 通過指定鍵的值為 nil 來移除 key-value(鍵-值)對。dict02[1] = nilprint(dict02)
// 遍曆字典// 1 使用 for-in 迴圈來遍曆某個字典中的索引值對。for (key, value) in dict03{ print("字典 key \(key) -  字典 value \(value)")}        // 2 使用enumerate()方法來進行字典遍曆,返回的是字典的索引及 (key, value) 對for (key, value) in dict03.enumerate(){ print("字典 key \(key) -  字典 (key, value) 對 \(value)")}// 3 for key in dict03.keys{ let value = dict03[key] print("key = \(key), value = \(value)")}
// 字典轉換為數組// 提取字典的索引值(key-value)對,並轉換為獨立的數組。let dictKeys = [String](dict03.keys)for (key) in dictKeys{ print("\(key)")}        let dictValues = [String](dict03.values)for (value) in dictValues{ print("\(value)")}
// count 屬性let count01 = dict03.countprint(count01)
// isEmpty 屬性let empty01 = dict01.isEmptyprint("dict01 is \(empty01)")        let empty02 = dict03.isEmptyprint("dict03 is \(empty02)")











相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.