在go語(yǔ)言中,泛型就是編寫(xiě)模板適應(yīng)所有類(lèi)型,只有在具體使用時(shí)才定義具體變量類(lèi)型;通過(guò)引入類(lèi)型形參和類(lèi)型實(shí)參的概念,讓一個(gè)函數(shù)能夠處理多種不同類(lèi)型數(shù)據(jù)的能力,這種編程方式被稱(chēng)為泛型編程。
php入門(mén)到就業(yè)線(xiàn)上直播課:進(jìn)入學(xué)習(xí)
Apipost = Postman + Swagger + Mock + Jmeter 超好用的API調(diào)試工具:點(diǎn)擊使用
本教程操作環(huán)境:windows7系統(tǒng)、GO 1.18版本、Dell G3電腦。
Go 1.18 版本新增了一個(gè)功能:支持泛型編程。
如果是其他語(yǔ)言轉(zhuǎn) Go 語(yǔ)言的開(kāi)發(fā)者,那么能夠理解什么是泛型,以及如何使用?
但只是 Go 語(yǔ)言的初學(xué)者,并沒(méi)有接觸過(guò)泛型編程的人來(lái)說(shuō),這個(gè)功能可能一頭霧水。
本文希望能讓為接觸泛型編程的人也能很好的理解和使用 Go 的泛型
A general guideline for programming Go: write Go programs by writing code, not by defining types
Go 編程的通用準(zhǔn)則:通過(guò)編寫(xiě)代碼,而不是定義類(lèi)型來(lái)寫(xiě) Go 程序
什么是泛型?
泛型就是編寫(xiě)模板適應(yīng)所有類(lèi)型,只有在具體使用時(shí)才定義具體變量類(lèi)型
函數(shù)的形參和實(shí)參
函數(shù)定義時(shí)的參數(shù)是形參 (parameter),在實(shí)際使用函數(shù)傳入的參數(shù)為實(shí)參 (argument)
假設(shè)有一個(gè)加法函數(shù),這個(gè)函數(shù)有兩個(gè)參數(shù)都是 int
類(lèi)型,返回值也是 int
;定義如下:
func Test(a,b int) int { return a + b }
如果傳入的兩個(gè)實(shí)參都是 int
類(lèi)型,那么函數(shù)自然能夠正常執(zhí)行。但是這個(gè)函數(shù)只能用來(lái)做 int
類(lèi)型的加法運(yùn)算,假設(shè)還需要進(jìn)行 float64
類(lèi)型的加法運(yùn)算,我們就需要再寫(xiě)一個(gè)函數(shù)?!?/p>