swift协议, Swift 协议 遵从 运用 编程
Swift 中的协议(Protocol)是一种界说办法、特点和其它要求的标准。它用于指定类、结构体和枚举有必要遵从的规矩,但不供给详细的完成。Swift 中的协议类似于其它语言中的接口或抽象类。
1. 界说协议:运用 `protocol` 关键字界说一个协议,并在花括号内列出协议要求的办法、特点等。2. 遵从协议:一个类、结构体或枚举能够遵从一个或多个协议,并在其界说中运用 `: 协议名` 来指定。遵从协议的类型有必要完成协议中一切非可选的要求。3. 可选要求:协议中的要求能够是可选的,这意味着遵从协议的类型能够挑选是否完成该要求。在协议中,运用 `@optional` 符号可选要求。4. 扩展协议:能够运用 `extension` 关键字为协议增加额定的功用,而不需要修正遵从该协议的类型。这类似于为类增加扩展。5. 协议承继:协议能够承继自其它协议,这意味着它包括其它协议的一切要求,而且能够增加新的要求。
以下是一个简略的 Swift 协议示例:
```swiftprotocol CanFly { func fly}
struct Bird: CanFly { func fly { print }}
struct Plane: CanFly { func fly { print }}
let bird = Birdbird.fly // 输出:鸟在翱翔
let plane = Planeplane.fly // 输出:飞机在飞翔```
在这个示例中,`CanFly` 协议界说了一个 `fly` 办法。`Bird` 和 `Plane` 结构体都遵从了 `CanFly` 协议,并完成了 `fly` 办法。当调用 `fly` 办法时,会输出相应的音讯。
深化探究 Swift 协议:界说、遵从与运用
Swift 协议 遵从 运用 编程
一、什么是 Swift 协议?
Swift 协议(Protocol)是 Swift 编程语言中的一项中心特性,它供给了一种界说接口和完成多态的强壮办法。经过协议,咱们能够指定遵从该协议的类型有必要完成哪些功用。协议类似于其他编程语言中的接口(interface)或抽象类(abstract class)。
二、协议的根本语法
在 Swift 中,协议的界说运用 `protocol` 关键字。下面是一个简略的协议示例:
```swift
protocol ExampleProtocol {
var mustBeSettable: Int { get set }
var doesNotNeedToBeSettable: Int { get }
func protocolMethod()
在这个比如中,`ExampleProtocol` 协议界说了一个可读写特点 `mustBeSettable`、一个只读特点 `doesNotNeedToBeSettable` 和一个办法 `protocolMethod()`。
三、恪守协议
类型能够经过在类型称号后加上协议称号来恪守协议。例如:
```swift
struct ExampleStruct: ExampleProtocol {
var mustBeSettable: Int = 0
let doesNotNeedToBeSettable: Int = 1
func protocolMethod() {
// 完成协议办法
}
在这个比如中,`ExampleStruct` 结构体恪守了 `ExampleProtocol` 协议,并供给了详细的完成。
四、协议中的特点和办法
协议不只能够界说办法,还能够界说特点和下标(subscript)。协议中的特点能够是只读的,也能够是可读写的。
```swift
protocol FullyNamed {
var fullName: String { get }
var age: Int { get set }
protocol Greetable {
func greet(name: String) -> String
在上面的比如中,`FullyNamed` 协议界说了一个只读特点 `fullName` 和一个可读写特点 `age`,而 `Greetable` 协议界说了一个办法 `greet`。
五、协议的承继与组合
协议能够承继其他协议,从而在单个协议中组合多个要求。一个类型能够遵从多个协议。
```swift
protocol Vehicle {
var speed: Double { get set }
func drive()
protocol ElectricVehicle: Vehicle {
var batteryCapacity: Int { get }
class Car: ElectricVehicle {
var speed: Double = 0.0
var batteryCapacity: Int = 100
func drive() {
// 完成驾驭逻辑
}
在这个比如中,`ElectricVehicle` 协议承继自 `Vehicle` 协议,并增加了一个新的特点 `batteryCapacity`。
六、协议扩展
咱们能够经过扩展来为协议增加默许完成。这样,遵从协议的类型能够挑选性地完成这些默许完成或供给自己的完成。
```swift
extension FullyNamed {
var description: String {
return \
- 上一篇:python注释快捷键,提高编程功率的利器
- 下一篇:go 数据类型, 根本数据类型
猜你喜欢
- 后端开发
耗费运用python编程,从根底到实践
运用Python编程一般触及以下几个进程:1.装置Python:首要,你需求保证你的核算机上装置了Python。你能够从Python官方网站下载并装置合适你操作体系的Python版别。2.编写代码:运用文本编辑器(如Notepad、...
2025-01-10 4 - 后端开发
r言语装置教程,R言语保姆级装置教程
装置R言语是一个相对简略的进程,以下是一个根本的装置攻略。请注意,具体的过程或许会根据您的操作体系和R版别的不同而有所差异。装置R言语1.下载R言语拜访R官方网站:https://www.rproject.org...
2025-01-10 4 - 后端开发
java8,敞开高效编程新时代
Java8是Java编程言语的第八个首要版别,于2014年3月18日发布。这个版别引入了许多新的特性和改善,包含Lambda表达式、流API、新的日期和享用API、默许办法、重复注解、办法引证、并行数组操作等。1...
2025-01-10 5 - 后端开发
铃木swift报价,全面解析这款小型车的商场行情
依据我找到的信息,铃木Swift(在中国商场被称为“雨燕”)的最新报价如下:1.日本商场:新一代铃木Swift在日本供给1.2升燃油版和1.2升轻混版两种动力挑选,并依据装备不同分为XG(燃油版)、MX(轻混版)、MZ(轻混版)三...
2025-01-10 4 - 后端开发
swift怎样读,耗费开端学习Swift
Swift是一种编程言语,首要用于iOS、macOS、watchOS和tvOS的开发。它由苹果公司于2014年推出,旨在代替ObjectiveC成为苹果借题发挥的首要编程言语。Swift规划得愈加现代化、安全、高效,明显...
2025-01-10 4 - 后端开发
c言语随机数函数,深化解析C言语中的随机数函数
在C言语中,生成随机数一般运用`rand`函数。该函数界说在`stdlib.h`头文件中,能够生成一个介于0到`RAND_MAX`之间的随机数,其间`RAND_MAX`是一个常量,一般至少为32767。假如你想要生成特定规模内的随机数,能够...
2025-01-10 4 - 后端开发
c言语图形库,从根底到运用
1.SDL(SimpleDirectMediaLayer):SDL是一个跨借题发挥的开源库,用于开发游戏和多媒体运用程序。它供给了图形、声响、输入和其他功用的API。SDL支撑多种操作体系,包含Windows、Linux、macOS等...
2025-01-10 4 - 后端开发
php岗位,互联网年代的中心力气
关于PHP岗位的招聘信息、职位要求和薪资待遇,我整理了一些详细信息供您参阅:招聘信息1.BOSS直聘:供给2025年最新的PHP招聘信息,支撑在线直聊和面试,便利求职者与招聘者直接交流。2.猎聘:猎聘网站上有很多的PHP岗位招聘信息,...
2025-01-10 7