複合值 compound
複合值 compound
使用[]建立陣列(array)和字典(dictionary)
【集合型別】Collection Types
Swift 提供了三種主要的集合型別,稱為陣列(array)、集合(set)和字典(dictionary),用於儲存值的集合。
- 陣列是值的 “有序集合” 。
- 集合(set)是唯一值的 “無序集合” 《unordered collections》(單一的集合中,值不會重複)。
- 字典是 “鍵值關聯”(key-value associations)的無序集合。
宣告並建立陣列
此陣列型別為[String]
var shoppingList = ["catfish", "water", "tulips"]
以陣列的索引值配合[ ]來讀取陣列中的個別元素值
print(shoppingList) // "["catfish", "water", "tulips"]\n"
shoppingList[0] // "catfish"
shoppingList[1] // "water"
shoppingList[2] // "tulips"
shoppingList[2]+shoppingList[1] // "tulipswater"
以指定的索引值來”修改”特定元素的值
shoppingList[1] = "bottle of water
列印陣列的全部內容(僅限debug使用)
print(shoppingList) // ["catfish", "bottle of water", "tulips"]
取得陣列中元素的總個數
shoppingList.count
在指定的索引值位置(參數二)插入一個新的陣列元素
shoppingList.insert("Test", at: 1)
// ["catfish", "Test", "bottle of water", "tulips"]
在指定的索引值位置(參數二)插入一個新的陣列(有序的集合sequence
shoppingList.insert(contentsOf: ["xzy","qqq"], at: 2)
// ["catfish", "Test", "xzy", "qqq", "bottle of water", "tulips"]
在陣列的”最後位置”加上一個新的陣列元素
shoppingList.append("123")
// ["catfish", "Test", "xzy", "qqq", "bottle of water", "tulips", "123"]
在陣列的最後位置加上一個新的陣列(有序的集合sequence)
shoppingList.append(contentsOf: ["abc","def"])
// ["catfish", "Test", "xzy", "qqq", "bottle of water", "tulips", "123", "abc", "def"]
shoppingList.count // 9
shoppingList.count
shoppingList
刪除陣列中指定索引值的元素
shoppingList.remove(at: 3) // "qqq"
移除陣列中的第一個元素
shoppingList.removeFirst() // "catfish"
shoppingList // ["Test", "xzy", "bottle of water", "tulips", "123", "abc", "def"]
移除陣列中的最後一個元素
shoppingList.removeLast() // "def"
shoppingList // ["Test", "xzy", "bottle of water", "tulips", "123", "abc"]
以下兩個語法都可以將整個陣列清空
shoppingList.removeAll() //[]
shoppingList = [] // []
宣告並建立字典,此字典型別為[String:String]
“key” : “value”
var occupations = [
"Malcolm": "Captain",
"Kaylee": "Mechanic",
]
//最後一筆資料的逗點可以保留(包含陣列)
以字典的key(鍵)來查詢value(值)
occupations["Malcolm"] // "Captain"
如果查詢的key不存在會回報空值(nil/null)
occupations["abc"] // nil
查詢字典會拿到選擇值,不論是否有查到資料
let oc1 = occupations["Malcolm"] // "Captain"
oc1?.hasPrefix("Ma") // Optional(false)
當key查不到值時,以下的串連呼叫執行動作會直接被忽略
occupations["abc"]?.hasSuffix("xy") // nil
取得字典中元素的總個數
occupations.count // 3
當key存在時,設定其值會在字典中”修改”一組『鍵值配對』的值
occupations // ["Kaylee": "Mechanic", "Jayne": "Public Relations", "Malcolm": "Captain"]
occupations["Kaylee"] = "Engineer" // "Engineer"
occupations // ["Kaylee": "Engineer", "Jayne": "Public Relations", "Malcolm": "Captain"]
刪除字典中的一組鍵值配對(key-value pair)
occupations.removeValue(forKey: "Jayne") // "Public Relations"
occupations. // ["Kaylee": "Engineer", "Malcolm": "Captain"]
以下兩個語法都可以將整個字典清空
occupations.removeAll()
occupations = [:]
集合型別的雜湊值(Hash Values for Set Types)一個型別必須是可以雜湊的,才能夠儲存在集合(set)當中。
A type must be hashable in order to be stored in a set
Swift 的所有基礎型別(例如String、Int、Double和Bool)預設情況下都是可以雜湊的,可以用來作為集合型別的值(set value types)或字典key的型別(dictionary key types)。
All of Swift’s basic types (such as String, Int, Double, and Bool) are hashable by default, and can be used as set value types or dictionary key types.
雜湊(英語:Hashing)是電腦科學中一種對資料的處理方法,通過某種特定的函式/演算法(稱為雜湊函式/演算法)將要檢索的項目與用來檢索的索引(稱為雜湊,或者雜湊值)關聯起來,生成一種便於搜尋的資料結構(稱為雜湊表)。