泛型(generic)可以使我們?cè)诔绦蛑卸x一些可變部分,在運(yùn)行的時(shí)候指定,使用泛型可以大程度重用代碼,保護(hù)類(lèi)型的安全以及提高性能。
1、泛型函數(shù)
在函數(shù)名后面加
func log4
println(msg)
}
log4(3)
log4("sorry")
log4(1.02)
如果有多個(gè)不同類(lèi)型,可以使用其它大寫(xiě)字母,一般習(xí)慣使用U,多個(gè)占位符使用逗號(hào),隔開(kāi):
示例如下:
func isEquals
}
占位符不僅可以替代參數(shù)類(lèi)型,還可以替代返回值類(lèi)型:
func isEquals
2、泛型約束
有些占位符必須遵守某種協(xié)議,及T占位符后面添加冒號(hào)和協(xié)議類(lèi)型,這種表示方式成為泛型約束,它能夠替換T的類(lèi)型。
例如一個(gè)比較函數(shù):
func isEquals
return(a==b)
}
上面的函數(shù)在編譯時(shí)會(huì)出錯(cuò),這是因?yàn)椴⒉皇撬蓄?lèi)型都具有可比性,T表示的類(lèi)型必須遵守Comparable協(xié)議實(shí)現(xiàn)的類(lèi)型,comparable協(xié)議表示可比較的:
修改如下:
func isEquals
return (a==b)
}
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線(xiàn),公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿(mǎn)足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。