Ch06. 聚集型態
6.1 陣列的表示法 宣告一陣列變數av的語法如下: var av = [value1, value2, value3, …] 或 6.1 陣列的表示法 宣告一陣列變數av的語法如下: var av = [value1, value2, value3, …] 或 var av: [type] = [value1, value2, value3, …] var av: Array<type> = [value1, value2, value3, …]
6.1.1 陣列的運作與一些常用的API 1. count 函式 6. removeLast函式 2. isEmpty函式 7. (repeating:, count:) 函式 3. append函式 8. sorted函式 4. insert(x, at:)函式 9. SwapAt() 函式 5. remove(at:) 函式
6.1.2 二維陣列 二維陣列的宣告,我們以範例程式來解釋一下 。
範例程式 // 二維陣列的表示法 import Foundation var array2D: [[Double]] = [[1.9, 3.7], [6.3, 8.6]] for i in 0..<2 { for j in 0..<2 { print(String(format: "%-6.2f", array2D[i][j]), terminator: "") } print("")
輸出結果 1.90 3.70 6.30 8.60
6.2 詞典的表示法 宣告一詞典變數dv的語法如下: 6.2 詞典的表示法 宣告一詞典變數dv的語法如下: var dv = [key1: value1, key2: value2, key3: value3, … ] 或 var dv: Dictionary<keytype, valuetype> = [key1: value1, key2: value2, key3: value3, ...] var dv: [keytype: valuetype] = [key1: value1, key2: value2, key3: value3, ...]
6.2.1 詞典的運作與一些常用的API 再以另一個範例程式,從中說明詞典還提供那些可用的API,以 下片段程式是相互關聯的,也就是說後面的程式將會用到前面的 程式。
範例程式 var countries = Dictionary<String, String>() countries["France"] = "Eiffel Tower" countries["Taiwan"] = "Taipei 101" countries["Germany"] = "Berlin" for(country, landmark) in countries { print("\(country): \(landmark)") }
輸出結果 France: Eiffel Tower Germany: Berlin Taiwan: Taipei 101
1. updateValue(forKey:)函式 if let oldValue = countries.updateValue("Berlin Wall", forKey: "Germany") { print("The old value for Germany was \(oldValue)") }
2. removeValue(forKey: ) 函式 刪除詞典中的元素項目,除了以nil指定給某一鍵值外,也可以使 用removeValue(forKey: ) 函式,除了刪除的功能外,也會回傳被刪 除的值,此時我們可以將它指定給某一常數名稱,如下所示: if let removeLandmark = countries.removeValue(forKey: "Taiwan") { print("The remove landmark name is \(removeLandmark)") } else { print("The dictionary does not contain a value for Taiwan") }
3. [:] 若要清空詞典的所有資料,只要將[:]指定給詞典變數即可,如下 所示: countries = [:] countries["Taiwan"] = "Taipei 101" for(country, landmark) in countries { print("\(country): \(landmark)") }
6.3 聚集型態的指定與複製行為 以結構的方式加以實作,也就是當您將某一個陣列或詞典指定給 另一個時,是以複製的方式實作的,彼此皆有不同的空間。
6.4 將陣列中的元素組合成詞典 可以將將陣列中的元素組合成詞典,這是 Swift 4 的新增功能。 6.4 將陣列中的元素組合成詞典 可以將將陣列中的元素組合成詞典,這是 Swift 4 的新增功能。 利用 zip 函式與 Dictionary(uniqueKeysWithValues:) 就可以完成此 項工作。
範例程式 let city = ["台灣", "法國", "英國"] let landmark = ["台北101", "巴黎鐵塔", "倫敦大笨鐘"] let cityLandmark = zip(city, landmark) for data in cityLandmark{ print(data) } let dic = Dictionary(uniqueKeysWithValues: cityLandmark) for (city, landmark) in dic { print("City: \(city), Landmark: \(landmark)")
輸出結果 ("台灣", "台北101") ("法國", "巴黎鐵塔") ("英國", "倫敦大笨鐘") City: 法國, Landmark: 巴黎鐵塔 City: 英國, Landmark: 倫敦大笨鐘 City: 台灣, Landmark: 台北101