Bootstrap

Swift从0开始学习 协议和扩展 day5

协议:定义行为的契约

协议类似于其他语言中的接口。它们定义了一组方法、属性或其他需求,供结构体、类、枚举等类型去遵循和实现。协议并不实现这些需求,而是作为一种约定或合同,确保实现协议的类型会遵循特定的行为。

协议的定义和遵循

在 Swift 中,使用 protocol 关键字来定义协议。例如:

protocol ExampleProtocol {
    var simpleDescription: String { get }
    func exampleMethod()
}

在上述代码中,ExampleProtocol 定义了一个协议,要求遵循者实现一个只读属性 simpleDescription 和一个方法 exampleMethod()。遵循协议非常简单,只需使用 structclass 或 enum 实现该协议:

struct ExampleStruct: ExampleProtocol {
    var simpleDescription: String = "This is an example."
    
    func exampleMethod() {
        print("Example method executed.")
    }
}
协议中的属性和方法要求

协议可以要求属性是只读或读写,还可以要求特定的方法实现:

protocol FullyNamed {
    var fullName: String { get } // 只读属性
    var age: Int { get set } // 读写属性
}

protocol Greetable {
    func greet(name: String) -> String
}

实现这些协议时,遵循者需要满足这些要求:

struct Person: 
;