第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

帶“ where Self”子句的Swift協(xié)議

帶“ where Self”子句的Swift協(xié)議

除了帶有協(xié)議擴展的語法外:protocol P {}extension P where Self : UIView {}...我偶然發(fā)現(xiàn)您可以在協(xié)議本身上使用相同的where子句:protocol P where Self : UIView {}請注意,這是不一樣的where子句限制一個通用的協(xié)議,并沒有自己做P上的通用協(xié)議。我的實驗似乎表明,此處只能使用冒號,并且冒號后面的內(nèi)容必須是類或協(xié)議(可能是通用的)。我很好奇:這是怎么逃避我的注意的?所以我去尋找它何時出現(xiàn)的證據(jù)。在Swift 3.0中,前一種語法是合法的,但后者則不合法。在Swift 3.3中,兩者均合法。因此,后一種語法必須已在Swift 3.2之類的工具中悄然引入。我之所以說“安靜”,是因為在發(fā)行說明中找不到任何有關(guān)它的信息。第二種語法是什么?看起來是不是一種確保其他類型都不能采用此協(xié)議的便捷方法?Swift標頭似乎沒有使用它。
查看完整描述

3 回答

?
慕森王

TA貢獻1777條經(jīng)驗 獲得超3個贊

在Swift 5中,您將編寫protocol P where Self : C, Self : Decodable {}or protocol P where Self : C & Decodable {}protocol P : C, Decodable {}。然而,在Swift 4.x中,正如我的答案所討論的,編譯器不支持這種構(gòu)造。

查看完整回答
反對 回復 2019-09-26
?
慕容3067478

TA貢獻1773條經(jīng)驗 獲得超3個贊

IMO的改變是有道理的-協(xié)議派生(即protocol P2 : P1)在語義上應等效于對的約束Self,即protocol P2 where Self : P1。因此,如果您允許protocol P2 where Self : SomeClass,也允許它似乎是合乎邏輯的protocol P2 : SomeClass(盡管如此,我很欣賞如何將其容易地誤認為繼承)。

查看完整回答
反對 回復 2019-09-26
  • 3 回答
  • 0 關(guān)注
  • 1489 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號