Z
ZHANK
集合类型

数组 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: >)