集合
数组
let numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
for num in numbers {
print(num)
}
let num1 = numbers[0]
let num2 = numbers[1]
let array = ["zhangsan", "lisi"]
var array1 = ["zhangsan", "lisi"]
array1.append("wangwu")
- 数组的类型
- 如果初始化时,所有内容类型一致,择数组中保存的是该类型的内容
- 如果初始化时,所有内容类型不一致,择数组中保存的是
NSObject
var array2 = ["zhangsan", 18]
array2.append(100)
array2.append(NSValue(CGPoint: CGPoint(x: 10, y: 10)))
- 数组的定义和实例化
- 使用
:
可以只定义数组的类型 - 实例化之前不允许添加值
- 使用
[类型]()
可以实例化一个空的数组
var array3: [String]
array3 = [String]()
array3.append("laowang")
- 数组的合并
- 必须是相同类型的数组才能够合并
- 开发中,通常数组中保存的对象类型都是一样的!
array3 += array1
array3.removeAtIndex(3)
array3.removeAll()
- 内存分配
- 如果向数组中追加元素,超过了容量,会直接在现有容量基础上 * 2
var list = [Int]()
for i in 0...16 {
list.append(i)
print("添加 \(i) 容量 \(list.capacity)")
}
字典
- 定义
- 同样使用
[]
定义字典 let
不可变字典var
可变字典[String : NSObject]
是最常用的字典类型
var dict = ["name": "zhangsan", "age": 18]
- 赋值
- 赋值直接使用
dict[key] = value
格式 - 如果 key 不存在,会设置新值
- 如果 key 存在,会覆盖现有值
dict["title"] = "boss"
dict["name"] = "lisi"
dict
- 遍历
k
,v
可以随便写- 前面的是
key
- 后面的是
value
for (k, v) in dict {
print("\(k) ~~~ \(v)")
}
- 合并字典
- 如果 key 不存在,会建立新值,否则会覆盖现有值
var dict1 = [String: NSObject]()
dict1["nickname"] = "大老虎"
dict1["age"] = 100
for (k, v) in dict1 {
dict[k] = v
}
print(dict)