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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

能夠?qū)⒆兞康念愋头盒图s束化嗎?

extension?Record{
????public?static?func?<(lhs:?Self,?rhs:?Self)?->?Bool{
????????return?lhs.winningPercent()?<?rhs.winningPercent()
????}

????public?static?func?==(lhs:?Self,?rhs:?Self)?->?Bool{
????????return?lhs.winningPercent()?==?rhs.winningPercent()
????}
}

用上一視頻使用的例子,創(chuàng)建了三個(gè)遵守Record這個(gè)協(xié)議的結(jié)構(gòu)體(BaseballRec, BasketballRec, FootballRec)

其三者的實(shí)例(baseTeamRec,basketTeamRec,footTeamRec)是可以兩兩互相比較的,也可以調(diào)用isPrizable()方法,但當(dāng)帶入函數(shù)topPrizable時(shí)

func topPrizable<T: Record & Prizable>(list: [T]) -> T?

topPrizable(list: [baseTeamRec, basketTeamRec, footTeamRec] )

會(huì)提示類型不匹配的錯(cuò)誤,要怎麼修正呢?

Cannot convert value of type '[Any]' to expected argument type '[_]'

且要將這些實(shí)例存成Record的Array也有錯(cuò)誤,提示Record Protocol 要成爲(wèi)類型得要用泛型約束,gameRecords的類型要如何定義呢?

let gameRecords: [Record] =?[baseTeamRec, basketTeamRec, footTeamRec]

Protocol 'Record' can only be used as a generic constraint because it has Self or associated type requirements

正在回答

3 回答

漏了一個(gè)關(guān)鍵字,應(yīng)該是這樣:func topPrizable<T: protocol<Record, Prizable>>(list: [T]) -> T?

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

leavie 提問者

func aFunction<T : protocol<Pr1, Pr2>>是2.x的語法,協(xié)議聚合3.0是<T: Pr1 & Pr2>, 在Arrary容器要放不同結(jié)構(gòu)體,原本可以用同一個(gè)協(xié)議來描述成為共同的類型,但如果這個(gè)協(xié)議繼承了Comparable就無法成為一個(gè)類型,Array裡的元素就因?yàn)闆]有共同類型自動(dòng)變成Any類型,要怎麼指定一個(gè)統(tǒng)一的類型給元素呢?
2016-09-23 回復(fù) 有任何疑惑可以回復(fù)我~

請(qǐng) 劉老師 ?出來 解答一下。。。。。。。。。。。。等待

0 回復(fù) 有任何疑惑可以回復(fù)我~

可以使用聚合協(xié)議來定義,就是這樣子func topPrizable<T: <Record, Prizable>>(list: [T]) -> T?

0 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消

能夠?qū)⒆兞康念愋头盒图s束化嗎?

我要回答 關(guān)注問題
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

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