在 Go 中,通常在結構體中嵌入自訂類型以新增功能或資料組織。但是,同樣的原則是否也適用於像 int32 這樣的預宣告型別?讓我們探討這個問題及其意義。
預聲明型別 int32 沒有可用的方法。這可以使用反射來驗證:
fmt.Println(reflect.TypeOf(int32(0)).NumMethod()) // Prints 0
要存取結構中嵌入的int32 值,請使用非限定型別名稱作為欄位名稱:
u := User{3, "Bob"} fmt.Printf("%#v\n", u) // Output: main.User{int32:3, Name:"Bob"} u.int32 = 4 fmt.Println(u.int32) // Output: 4
嵌入原始型別時像int32可能不會提供任何直接的優勢,嵌入其他類型通常會帶來一些好處,例如:
嵌入預聲明像int32 這樣的類型有一個缺點:
總之,嵌入像int32 這樣的預聲明類型在特定場景中可能很有用,但重要的是要仔細考慮優點和缺點,以確保它是針對特定情況的最佳解決方案。手頭上的問題。
以上是在 Go 中嵌入像「int32」這樣的預聲明類型有什麼真正的優勢嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!