Swift 面试题
目录

Swift 中如何定义协议?

· 约 3 分钟读完 · 第 103 / 196 章

推荐答案

在 Swift 中,协议(Protocol)用于定义一组方法、属性或其他要求的蓝图。协议可以被类、结构体或枚举遵循,以提供这些要求的实现。定义协议的语法如下:

协议可以要求遵循的类型实现特定的属性或方法。例如:

本题详细解读

协议的定义

在 Swift 中,协议通过 protocol 关键字来定义。协议可以包含方法、属性、下标、构造器等的声明。协议本身并不提供这些要求的实现,而是由遵循该协议的类型来提供具体的实现。

协议中的属性

协议可以要求遵循的类型实现特定的属性。属性可以是只读的({ get })或可读写的({ get set })。例如:

在这个例子中,mustBeSettable 属性要求遵循的类型必须提供一个可读写的 Int 属性,而 doesNotNeedToBeSettable 属性只需要提供一个只读的 Int 属性。

协议中的方法

协议可以要求遵循的类型实现特定的方法。方法的定义与普通方法的定义类似,但不包含方法体。例如:

遵循该协议的类型需要实现 someMethod() 方法。

协议中的构造器

协议还可以要求遵循的类型实现特定的构造器。构造器的定义与普通构造器的定义类似,但不包含构造器体。例如:

遵循该协议的类型需要实现 init(someParameter: Int) 构造器。

协议的遵循

类、结构体或枚举可以通过在类型声明后加上协议名称来遵循协议。例如:

在这个例子中,SomeClass 类遵循了 SomeProtocol 协议,并提供了协议中要求的属性、方法和构造器的实现。