Swift基礎1.5——基本語法——集合
阿新 • • 發佈:2019-02-04
這一篇,簡單介紹一下Swift中的陣列與字典
- 陣列使用
[]
定義,這一點與 OC 相同
//: [Int]
let numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
- 遍歷
// 順序遍歷陣列
for s in array1 {
print(s)
}
// 遍歷同時獲取下標
for s in array1.enumerate() {
print("\(s.index) \(s.element)")
}
// 遍歷同時獲取下標方法2
for (i, e) in array1.enumerate() {
print("\(i) \(e)")
}
// 倒序遍歷陣列
for s in array1.reverse() {
print(s)
}
// 倒序同時獲取下標
for e in array1.reverse().enumerate() {
print(e)
}
- 可變&不可變
let
定義不可變陣列var
定義可變陣列
let array = ["zhangsan", "lisi"]
//: 不能向不可變陣列中追加內容
//array.append("wangwu")
var array1 = ["zhangsan", "lisi"]
//: 向可變陣列中追加內容
array1.append("wangle")
- 陣列的型別
- 如果初始化時,所有內容型別一致,擇陣列中儲存的是該型別的內容
- 如果初始化時,所有內容型別不一致,擇陣列中儲存的是
NSObject
- 如果初始化時,所有內容型別一致,擇陣列中儲存的是該型別的內容
// array1 僅允許追加 String 型別的值
//array1.append(18)
var array2 = ["zhangsan", 18]
// 在 Swift 中,數字可以直接新增到集合,不需要再轉換成 `NSNumber`
array2.append(100)
// 如果向 陣列新增 `CG` 結構體,需要使用 `NSValue` 轉換
array2.append(NSValue(CGPoint: CGPoint(x: 10, y: 10)))
- 陣列的定義和例項化
- 使用
:
可以只定義陣列的型別 - 例項化之前不允許新增值
- 使用
[型別]()
- 使用
- 陣列的合併
- 必須是相同型別的陣列才能夠合併
- 開發中,通常陣列中儲存的物件型別都是一樣的!
字典
- 定義
- 同樣使用
[]
定義字典 let
不可變字典var
可變字典[String : NSObject]
是最常用的字典型別
- 同樣使用
- 遍歷
k
,v
可以隨便寫- 前面的是
key
- 後面的是
value
for d in dict {
print("\(d.0) \(d.1)")
}
// 遍歷
for (k, v) in dict {
print("\(k) ~~~ \(v)")
}
- 合併字典
- 如果 key 不存在,會建立新值,否則會覆蓋現有值
//: 合併字典
var dict1 = [String: NSObject]()
dict1["nickname"] = "大曾"
dict1["age"] = 100
//: 如果 key 不存在,會建立新值,否則會覆蓋現有值
for (k, v) in dict1 {
dict[k] = v
}
print(dict)