理解new 在Go 中的作用
與它在原始語言結構中的出現相反,new 在創建指針中找到了它的目的。雖然您不能直接使用 new 為基元指定值,但它成為為結構體等結構化資料類型分配記憶體的有用工具。在這種情況下,new 傳回一個指向未初始化物件的指針,允許您稍後使用其屬性。
區分 new 和 &
雖然 new(MyStruct ) 和 &MyStruct{} 產生一個指向新結構實例的指針,它們的使用取決於程式碼的意圖。有時, &MyStruct{} 的簡潔性是首選,而 new(MyStruct) 明確地展示了在堆上分配記憶體的意圖。
new 的其他注意事項
超越原始類型和結構體,new 不適用於切片和映射。相反,切片應該使用 make([]float, 100)。
new 的實際應用
由於 Go 缺乏內建建構函數,開發人員經常包裝 new呼叫自訂函數來初始化和自訂物件。這種方法簡化了初始化過程,允許隱藏私有字段,並簡化了結構演化。此外,它透過將物件的創建與其使用分離來提供靈活性,使開發人員能夠在不影響現有程式碼的情況下更改結構的結構。
以上是## Go 中的 `new(MyStruct)` 與 `&MyStruct{}` 有什麼不同?的詳細內容。更多資訊請關注PHP中文網其他相關文章!