在 Go 中,結構體類型可以包含嵌入字段,這允許在結構體中嵌入一個或多個類型。這項強大的功能可實現程式碼重複使用和高效的記憶體管理。然而,在學習指標時,理解如何存取這些欄位可能具有挑戰性。
考慮以下結構體定義:
<code class="go">type Engine struct { power int } type Tires struct { number int } type Cars struct { *Engine // Embedded field with pointer Tires // Embedded field without pointer }</code>
如您所觀察到的,在 Cars 結構體中,嵌入了一個類型指針 *Engine 已定義。這允許透過 Cars 結構存取 Engine 類型的方法和欄位。
要存取 Engine 嵌入字段的 power 字段,您必須先初始化 Engine 和 Cars 結構。在主函數中:
<code class="go">func main() { car := new(Cars) // Initialize Cars struct car.Engine = new(Engine) // Initialize Engine struct explicitly car.power = 342 // Set power field car.number = 4 // Set number field }</code>
透過明確初始化這兩個結構,您可以在嵌入的 *Engine 指標和實際的 Engine 物件之間建立連接。現在,您可以透過Cars 結構體存取power 欄位:
<code class="go">fmt.Println(car.power) // Prints 342</code>
同樣,對於非指標嵌入欄位Tires,您可以直接存取其number 欄位:
<code class="go">fmt.Println(car.number) // Prints 4</code>
此範例示範如何正確初始化和存取結構中的嵌入字段,使您能夠充分利用程式碼重用和高效的記憶體管理。
以上是如何存取Go結構中的嵌入字段?的詳細內容。更多資訊請關注PHP中文網其他相關文章!