数组 Array
数组声明/索引、append/insert/remove、map/filter/reduce 高阶
数组 Array
Swift 数组是值类型(struct)——赋值时拷贝。map/filter/reduce 是处理数组的利器。
学完本章你将: 掌握数组声明/索引、增删改、高阶函数。
创建与访问
swift
var nums = [1, 2, 3, 4, 5]
var empty = [Int]() // 空数组
var zeros = Array(repeating: 0, count: 5) // [0, 0, 0, 0, 0]
nums[0] // 1
nums.first // Optional(1)
nums.last // Optional(5)
nums.count // 5
nums.isEmpty // false
增删改
swift
nums.append(6) // [1,2,3,4,5,6]
nums.insert(0, at: 0) // [0,1,2,3,4,5,6]
nums.remove(at: 0) // 移除索引 0
nums.removeLast() // 移除最后一个
nums += [7, 8, 9] // 拼接
高阶函数
swift
let nums = [1, 2, 3, 4, 5]
// map —— 转换
let doubled = nums.map { $0 * 2 } // [2,4,6,8,10]
// filter —— 过滤
let even = nums.filter { $0 % 2 == 0 } // [2,4]
// reduce —— 归约
let sum = nums.reduce(0, +) // 15
// compactMap —— 过滤 nil
let strings = ["1", "2", "abc", "3"]
let numbers = strings.compactMap { Int($0) } // [1,2,3]
// flatMap —— 展平
let nested = [[1,2], [3,4]]
let flat = nested.flatMap { $0 } // [1,2,3,4]
// sorted
let sorted = [3,1,4,1,5].sorted() // [1,1,3,4,5]
let descending = nums.sorted(by: >)