排序
错误
错误基础知识 所有要抛出的错误都必须是符合Error协议的枚举。 enum PasswordError: Error { case empty case short } 错误可以添加关联值 enum PasswordError: Error { case empty case short ...
函数与闭包
可变函数 可变函数是一种不确定迭代的函数,也就是你发送多少参数,它就接受多少参数。 func add(numbers: Int...) -> Int { var total = 0 for number in numbers { total += number } retu...
引用类型和值类型
两者区别 布尔、数字、字符串、数组、字典、结构体等都是 Swift 中的值类型。类是引用类型,闭包也是引用类型。 引用类型在分配时是共享的,指向同一条数据,可以有多个所有者;值在分配时是复...
类型(六) – 泛型
func inspect<T>(_ value: T) { print('Received \(type(of: value)) with the value \(value)') } inspect('Haters gonna hate') inspect(56) 限制泛型 func square<T: Numeric>(_...
类型(五) – 集合
集合可以看作是无序数组,不能包含重复元素。如果多次添加相同的元素,它只会在集合中出现一次。 检查数组是否包含一个元素的复杂度为 O(n),这意味着 '这取决于数组中有多少个元素'。这是因为 ...
类型(四) – 字典
mapValues mapValues() 的方法更有用,因为它可以让你转换值,并使用原始键将它们放回字典。 let cities = ['Shanghai': 24_256_800, 'Karachi': 23_500_000, 'Beijing': 21_516_000, 'Seoul': ...
类型(三) – 数组
排序 只要数组存储的元素类型采用了 Comparable 协议,就可以使用 sorted() 和sort() 方法,前者返回一个已排序的数组,后者修改数组。 var names = ['Taylor', 'Timothy', 'Tyler', 'Thomas', ...
类型(二) – 枚举
enum Color { case unknown case blue case green case pink case purple case red } 枚举的基本使用 struct Toy { let name: String let color: Color } let barbie = Toy(name: 'Barbie', col...
类型(一) – 有用的初始化器
重复值 字符串或者数组的 repeating:count: 初始化器,可以快速创建大量值。 This is a heading ============== 具体的实现代码 let heading = 'This is a heading' let underline = String(rep...