主题
协议的定义与实现
协议定义一组方法和属性的蓝图,任何类型都可以遵循协议,实现这些要求。
定义协议
使用 protocol
关键字定义协议:
swift
protocol Greetable {
var name: String { get }
func greet()
}
遵循协议
类、结构体或枚举通过声明遵循协议并实现协议要求:
swift
struct Person: Greetable {
var name: String
func greet() {
print("你好,\(name)!")
}
}
使用协议类型
协议可以作为类型使用,实现多态:
swift
func sayHello(to entity: Greetable) {
entity.greet()
}
let p = Person(name: "小明")
sayHello(to: p) // 输出:你好,小明!
协议是 Swift 中面向协议编程(POP)的核心,增强代码灵活性和扩展性。