首頁 >後端開發 >Golang >如何在 Go 中使用合理的預設值初始化結構體?

如何在 Go 中使用合理的預設值初始化結構體?

Susan Sarandon
Susan Sarandon原創
2024-12-26 15:04:09473瀏覽

How Can I Initialize Structs with Sensible Default Values in Go?

Go 中的建構子:合理預設值指南

在Go 中使用結構體時,使用合理的預設值初始化它們對於確保其正常運作至關重要。雖然 Go 缺乏傳統的建構函數,但可以採用多種方法來實現此目標。

Init 方法

init 方法雖然是在套件層級定義的,可用來執行套件內結構的初始化任務。但是,它不會直接綁定到結構體,並且不會在結構體創建時調用。

新函數

Go 中的常見做法是定義新函數傳回初始化的結構指標。這些函數允許在結構體初始化期間分配預設值:

func NewThing(someParameter string) *Thing {
    p := new(Thing)
    p.Name = someParameter
    p.Num = 33 // Sensible default value
    return p
}

壓縮新函數

對於簡單的結構體,新函數的壓縮版本可以是使用,直接傳回初始化的結構體:

func NewThing(someParameter string) *Thing {
    return &Thing{someParameter, 33}
}

Make函數

Make函數與 New 函數類似,但按值而不是指標傳回結構。當您不需要指向結構體的指針時,這很有用:

func makeThing(name string) Thing {
    return Thing{name, 33}
}

參考

有關使用new 分配的更多信息,請參閱有效的Go文件:https://go.dev/doc/ effective_go#allocation

以上是如何在 Go 中使用合理的預設值初始化結構體?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn