Go Generics 入門筆記
Go Generics 入門筆記 自訂約束 // 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) }