泛型類型的預設值
Go 中不允許為任何類型傳回 nil。即使對於 T 可以代表任何類型的泛型類型,nil 也不是有效的選項。結構體和整數等類型沒有 nil 表示。
相反,可以傳回用於 T 的特定型別參數的零值。零值因類型而異:
要回傳零值,請聲明 T類型的變數並傳回它:
func getZero[T any]() T { var result T return result }
例如,使用 getZero 函數:
i := getZero[int]() fmt.Printf("%T %v\n", i, i) // Output: int 0 s := getZero[string]() fmt.Printf("%T %q\n", s, s) // Output: string "" p := getZero[image.Point]() fmt.Printf("%T %v\n", p, p) // Output: image.Point (0,0) f := getZero[*float64]() fmt.Printf("%T %v\n", f, f) // Output: *float64 <nil>
以上是如何處理 Go 中泛型類型的預設值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!