[tldr] GO泛型编程
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                [tldr] GO泛型编程
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.                        
                                最少的內(nèi)容簡述如何在GO中使用泛型編程
函數(shù)泛型
func f[T any](s Set[T]) {
}
在函數(shù)聲明的時候添加一個
[]作為泛型的說明, 在使用的時候是可以自動推斷
- 很多時候, any的類型聲明可能導(dǎo)致缺失一些條件, 比如不能比較大小, 所以無法使用
結(jié)構(gòu)體泛型
type SetDataType interface {
	comparable
}
type Set[T SetDataType] struct {
	data map[T]bool
}
使用map需要其中的元素的類型是可以比較的(即需要實現(xiàn)comparable接口)
使用結(jié)構(gòu)體的時候必須指出對應(yīng)的類型, 例如Set[string]才可以使用
Set[T]是完整的類型名字, 在結(jié)構(gòu)體的方法實現(xiàn)的時候需要使用完整的名字
接口泛型
type Inter[T any] interface {
	comparable
}
泛型約束
func f[T int | string](s Set[T]) {
}
可以限制泛型的類型是在幾種類型之間的
泛型命名
type Type interface {
	int | string | float64
}
給需要使用的泛型的可能情況取名字
type Type interface {
	int | string | float64
	error
}
可以指定泛型需要實現(xiàn)的接口
總結(jié)
以上是生活随笔為你收集整理的[tldr] GO泛型编程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: [tldr]windows使用scoop
- 下一篇: 美的置业香港上市 主要业务涵盖三个方面
