Go:嵌入原始類型
嵌入涉及將一種類型包含在另一種類型中。這在各種場景中都很有用。然而,當涉及到嵌入像 int32 這樣的基本類型時,需要考慮一些因素。
基本型別的方法
首先,基本型別不擁有任何方法。這意味著將 int32 嵌入到結構中(如您提供的範例中所示)不會授予 User 結構對任何 int32 方法的存取權。若要確認這一點,您可以使用 Reflect.TypeOf(int32(0)).NumMethod() 執行反射檢查。這將返回 0,表示缺少方法。
存取嵌入值
您可以使用非限定型別名稱作為欄位來存取嵌入的 int32 欄位的值名稱。例如,如果您有一個名為 u 的 User 實例,則可以使用 u.int32 存取嵌入的 int32 值。
嵌入基元類型的優點
沒有嵌入原始類型有很大的優勢,因為它們不具有任何方法或
嵌入原始類型的缺點
相反,嵌入原始類型也會帶來缺點。預設情況下,嵌入的預聲明類型(以小寫字母開頭的類型)是不導出的,這意味著它們只能在聲明包中引用。這限制了它們的實用性和靈活性。
因此,通常不建議嵌入原始類型,除非可以獲得特定的優勢,例如方法升級或欄位覆蓋。
以上是我應該在 Go 結構中嵌入原始類型嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!