在Go 中嵌入原始類型:仔細觀察
在構造自訂類型時,你可能會遇到嵌入原始類型的概念,例如int32 。雖然這種技術通常用於嵌入結構或接口,但嵌入原始類型會引發某些問題。
嵌入 int32 有用嗎?
不,直接嵌入 int32 沒用。與使用常規欄位相比,它不會提供任何直接的好處。 int32 是沒有關聯方法或欄位的基本型別。
int32 有可供使用者實例存取的方法嗎?
不,int32 沒有方法。您可以使用反射包來驗證這一點:
fmt.Println(reflect.TypeOf(int32(0)).NumMethod()) // Prints 0
存取嵌入的原始型別值
要存取 User 結構中嵌入的 int32值,您可以使用非限定類型名稱作為欄位名稱:
type User struct { int32 Name string } u := User{3, "Bob"} fmt.Println(u.int32) // Prints 3
優點和嵌入原始類型的缺點
雖然嵌入原始類型可能不會提供直接嵌入原始類型可能不會提供直接嵌入原始類型可能不會提供直接嵌入原始類型可能不會提供直接嵌入原始類型可能不會提供直接嵌入原始類型可能不會提供直接嵌入原始類型可能不會提供直接嵌入原始類型可能不會提供直接嵌入原始類型可能不會提供直接嵌入原始類型可能不會提供直接嵌入原始類型可能不會提供直接嵌入原始類型可能不會提供直接嵌入原始類型可能不會提供直接嵌入原始類型可能不會提供直接嵌入原始類型可能不會提供直接嵌入原始類型可能不會提供直接嵌入原始類型可能不會提供直接嵌入原始類型可能不會提供直接嵌入原始類型可能不會提供直接嵌入原始類型可能不會提供直接嵌入原始類型可能不會提供直接嵌入原始類型可能不會提供直接嵌入原始類型可能不會提供直接嵌入原始類型可能不會提供直接嵌入原始類型可能不會提供直接嵌入原始類型可能不會提供直接嵌入原始類型可能不會提供直接嵌入原始類型可能不會提供直接嵌入原始類型可能不會提供直接嵌入原始類型可能不會提供直接嵌入原始類型可能不會提供直接嵌入的優點,但它可能有缺點:
因此,通常不建議嵌入原始類型,除非有特定原因這樣做,例如實作需要存取嵌入值的介面。
以上是你應該在 Go 結構中嵌入像 int32 這樣的原始型別嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!