Go 中嵌入結構:何時使用指標
Go 中嵌入結構:何時使用指標
當考慮將一個結構嵌入另一個結構時,決定是否使用指標或出現嵌入字段的值。本文探討了這種實現選擇的細微差別,並提供範例來說明潛在的好處和影響。
透過指標嵌入
Go 規範允許將結構體嵌入為指標或價值。對於非介面類型,允許將匿名欄位指定為類型名稱 T 或指向非介面類型名稱 *T 的指標。
動態變更實例延長是可能的。此功能在實作享元模式時特別有用,其中多個實例共享相同的底層資料結構。
按值嵌入
將結構嵌入為value 嵌入了其所有功能,無需實例化知識。它有效地將嵌入結構的方法提升為封閉結構。
type Job struct {
Command string
*log.Logger
}
type Job struct {
命令字串
*log.Logger
}type Job struct {
Command string
log.Logger
}
type Job struct {
命令字串
日誌記錄器
}這裡,Job結構體直接嵌入log.Logger類型作為值。現在可以直接從 Job 結構體存取提升的 Logger 方法。
結論
透過指標嵌入和透過值嵌入都有其獨特的優點和注意事項。兩種方法之間的選擇取決於是否需要動態分配或方法升級。了解每種方法的含義有助於在 Go 中嵌入結構時做出明智的決策。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3