GO Generic 入門筆記
自定義約束
// Addable只允許int 或 float64類型
type Addable interface {
int | float64
}
func Add[T Addable](a, b T) T {
return a + b
}
~ 符號的作用
~ 符號用于表示與指定类型有相同底層類型的所有類型。當你在類型參數的约束中使用 ~ 符號時,你指定了一個類型集合,這個集合包含所有底層類型與约束中指定的類型相同的類型。
type MyInt int
type YourInt int
func PrintInt[T ~int](t T) {
fmt.Println(t)
}
func main() {
var a int = 5
var b MyInt = 10
var c YourInt = 15
PrintInt(a)
PrintInt(b)
PrintInt(c)
}
