對協議的擴充套件

2021-07-07 02:01:38 字數 570 閱讀 7631

新特性 對協議的擴充套件

//定義乙個協議

protocol 速度

//定義一輛車

struct 卡羅拉: 速度

}//定義一輛車

struct 普銳斯 : 速度

}//建立車物件呼叫方法

let 卡羅拉1 = 卡羅拉(**:100)

卡羅拉1.百公里加速時間()

//建立車物件呼叫方法

let 普銳斯1 = 普銳斯(**: 150)

普銳斯1.百公里加速時間()

//對協議進行擴充套件

extension 速度

}卡羅拉1.百公里加速排名

普銳斯1.百公里加速排名

在這裡 我們定義了乙個叫做速度的協議 它有乙個百公里加速時間的乙個方法

我們定義了兩個結構體 ,就是兩輛車,遵守了這個協議 因此要實現協議中的方法。接下來

對協議進行擴充套件,所有遵守協議的類都有了對應的百公里加速排名

新增屬性,再將其列印出來,說明對協議的擴充套件,會使遵循協議得類得新的屬性或者方法

下篇文章補充下基礎知識關於擴充套件的小問題

協議 分類 擴充套件

1.什麼是協議 協議就是規則,定義乙個協議就相當於制定規則。oc中類可以遵守協議,遵守了乙個協議的類相當於擁有了一種能力。1.2.協議的定義 protocol 協議名 required 宣告必須遵守的屬性和方法 optional 宣告可選遵守的屬性和方法 預設 required end 2.1什麼是...

Swift 優雅的協議擴充套件

先看呼叫效果 123456 yy str.md5forlower32bate 123456 yy str.md5forlower32bate 類似 view.snp.為什麼要這麼做呢?好處在哪呢?降低耦合度 傳統的寫法,直接在類別中新增乙個方法或屬性例如 extension string d d x...

對「協議」的理解

這裡講的協議是指通訊上的協議,而非文案上簽署的協議,不過有類似的意思 協議是一種用來完成某種功能的通訊 互動方式 例如 我們講話使用的語言,使用中文的人不能與使用英文的人直接進行交流,因為他們語言不同 協議不同無法直接進行通訊 如果不同語言得人想要進行溝通,必須有一名翻譯作為中介者進行翻譯 協議轉換...