Swift 标准库:iOS/macOS 完整概述

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

Swift 标准库 (iOS/macOS):完整概述



Swift 标准库是一组基础类型、协议和函数,是 iOS、macOS、watchOS 和 tvOS 所有开发的基础。与许多语言的标准库较为精简不同,Swift 开箱即用地提供了丰富的工具集。在本文中,我们将详细解析日常开发中使用的库的关键组件。



基本数据类型和协议



库的基础由基本类型和协议构成,确保数据操作的一致性。



  • 相等性和比较协议:Equatable、Comparable、Hashable — 允许比较和哈希对象。
  • 表示协议:CustomStringConvertible、CustomDebugStringConvertible — 用于对象的字符串描述。
  • 基本类型:Int、Double、Bool、String、Character — 为最大性能而重新定义。


// 协议使用示例struct Person: Equatable, CustomStringConvertible {    let name: String    let age: Int        var description: String {        return "\\(name), \\(age) 岁"    }}

let alice = Person(name: "爱丽丝", age: 30)let bob = Person(name: "鲍勃", age: 25)print(alice == bob) // falseprint(alice) // "爱丽丝, 30 岁"


集合:数组、字典和集合



Swift 提供了三种主要集合类型,针对不同使用场景进行了优化。



数组 (Array)

有序集合,支持随机访问。支持动态扩展和缩减。



var numbers: [Int] = [1, 2, 3, 4, 5]numbers.append(6)numbers.remove(at: 0)let filtered = numbers.filter { $0 > 3 }print(filtered) // [4, 5, 6]


字典 (Dictionary)

无序的“键-值”集合。键必须是 Hashable 的。



var capitals: [String: String] = [    "俄罗斯": "莫斯科",    "法国": "巴黎",    "日本": "东京"]capitals["德国"] = "柏林"if let russiaCapital = capitals["俄罗斯"] {    print("俄罗斯的首都是 \\(russiaCapital)")}


集合 (Set)

无序的唯一元素集合。非常适合成员资格检查和数学运算。



let setA: Set = [1, 2, 3, 4]let setB: Set = [3, 4, 5, 6]let intersection = setA.intersection(setB)let union = setA.union(setB)print(intersection) // [3, 4]print(union) // [1, 2, 3, 4, 5, 6]


字符串操作



Swift 中的字符串是 Unicode 字符的集合,使得国际化处理变得非常简单。



  • 字符串索引:startIndex、endIndex、index(_:offsetBy:) — 安全的字符导航。
  • 插值:"\\(变量)" — 将值嵌入字符串。
  • 多行字符串字面量:""" """ — 方便的格式化。


let greeting = "你好,世界!"let firstChar = greeting[greeting.startIndex] // "你"let index = greeting.index(greeting.startIndex, offsetBy: 3)let substring = greeting[index...] // "世界!"

// 插值和多行字符串let name = "Swift"let description = """\\(name) 语言用于开发iOS 和 macOS 应用程序。"""print(description)


可选类型和 nil 处理



Swift 通过可选类型提供对缺失值的安全处理。这是该语言的关键特性之一。



var optionalName: String? = "阿列克谢"// Optional                    

推荐