Swift编程:枚举与协议的深入解析
1. Swift协议扩展的特点与问题
Swift的协议扩展是其主要卖点之一,也是最强大的特性之一。协议可以像接口一样工作,协议扩展为类型提供默认实现,有助于避免僵化的子类化树。然而,协议比看起来更复杂,即使是经验丰富的开发者也可能会感到意外。
1.1 协议扩展示例
以下代码展示了一个 FlavorType 协议及其扩展:
protocol FlavorType{
// func addFlavor() // You get different results if this method doesn't exist.
}
extension FlavorType {
func addFlavor() { // Create a default implementation.
print("Adding salt!")
}
}
struct Coffee: FlavorType {
func addFlavor() { // Coffee supplies its own implementation.
print("Adding cocoa powder")
}
}
let tastyCoffee: Coffee = Coffee() // tastyCoffee is of type 'Coffee'
tastyCoffee.addFlavor() // Adding cocoa powder
let grossCoffee: FlavorT
超级会员免费看
订阅专栏 解锁全文
16

被折叠的 条评论
为什么被折叠?



