32、Swift 中 Equatable、Comparable 和 Hashable 协议详解

Swift 中 Equatable、Comparable 和 Hashable 协议详解

1. 引言

在 Swift 编程中,我们花费了大量时间学习如何对数据进行建模,了解了值类型和引用类型,以及它们有时能提供的“免费”特性,比如编译器自动合成的空初始化器。当我们遵循 Swift 标准库中的某些协议时,还能获得一些有用的行为。例如,遵循 CustomStringConvertible 协议并实现其所需的 description 属性,我们可以自定义类型实例在控制台的输出格式;遵循 Error 协议,类型实例就能作为错误从可能失败的函数中抛出。

除了上述协议,遵循标准库中的其他协议还能解锁更多常见行为。本文将介绍三个重要的协议: Equatable Comparable Hashable ,以及它们为自定义类型提供的特性。

2. Equatable 协议

2.1 初步尝试比较

首先,创建一个名为 Comparison 的新 playground 进行操作。我们要探讨的第一个特性是使用 == 运算符比较类型的两个实例。下面是定义 Point 结构体和创建两个相等实例的代码:

import Cocoa
var str = "Hello, playground"
struct Point 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值