1. 数组
import UIKit
var arr = [Int]()
for i in 0 ..< 10 {
arr.append(i)
}
arr[2 ... 5]
arr.contains(11) // 返回一个布尔值
arr.index(of: 1) // 返回1对应的下标
for (index, value) in arr.enumerated() {
print("\(index + 1): \(value)")
}
let arr2 = arr
arr == arr2 // 内容是一样的,返回true
arr += [10, 11] // 添加新元素
arr.insert(12, at: 12)
arr.remove(at: 0)
arr.removeSubrange(2 ... 4) // 去除第3,4,5项
arr[0 ... 1] = [100, 100, 100] // 将前两个数换成三个100
arr
var board = [[1, 2, 3], [4, 5, 6]]
board += [[0]] // 二维数组用 += 添加元素要括两层数组
print(board)
// NSArray 可以承载不同的数据类型,是一个类
// Swift中的数组不能承载不同的数据类型,是一个结构体
var arr3: NSArray = [1, "sss"] // 可以有不同的类型
2. 字典
import Foundation
var dic = [String: Int]() //申明空字典
dic["a"] = 1
dic["b"] = 2
dic.count
dic.isEmpty
Array(dic.keys) // 所有键组成一个数组
Array(dic.values) // 所有值组成一个数组
for key in dic.keys {
print(key)
}
for (key, value) in dic {
print("\(key): \(value)")
}
let dic2 = dic
dic == dic2 // 字典是结构体类型,只用于判断内容是否相等,没有引用的概念
// 修改值
dic["a"] = 10 // 方法一
dic.updateValue(4, forKey: "a") // 方法二,并返回旧的值
dic
// 添加
dic["c"] = 3
dic.updateValue(2, forKey: "d")
//删除
dic["c"] = nil
dic.removeValue(forKey: "a")
dic
3. 集合
import Foundation
import UIKit
var num = Set<Int>()
var num2 = Set([1, 3, 3]) // 去重
num2.count
num2.isEmpty
num2.first // 随机的取出一个元素
for i in num2 {
print(i)
}
let num3 = num2
num2 == num3
// 增
num2.insert(4)
num2
// 删
num2.remove(4)
num2
// 没有改
// 并
var set1 = Set([1, 2, 3, 4])
var set2 = Set([2, 3, 4, 5])
set1.union(set2) // 并不改变set1
set1
set1.formUnion(set2) // 改变set1
set1
// 交
set1.intersection(set2)
set1
set1.formIntersection(set2)
set2
// 差
var set3 = Set([1, 2, 3, 4])
var set4 = Set([2,3,5])
set3.subtracting(set4) // set3独有而set4没有,不改变set3
set3
set3.subtract(set4) //改变set3
set3
注释:
一、元组和集合不要弄混。
元组类似于结构体,他有如下特点:
1 可以有任意多个值
2 不同的值可以有不同的类型
3 用小括号括起来
4. 元组也有类型,比如(Int, Int)
二、数组、字典和集合都用中括号
只不过
数组:不用显示注明,默认数组类型
字典:用冒号来声明
集合:需要用Set强制类型转换或者显示声明