首頁 >後端開發 >Golang >如何在沒有構造函數的情況下初始化結構體?

如何在沒有構造函數的情況下初始化結構體?

Susan Sarandon
Susan Sarandon原創
2024-12-18 02:47:14186瀏覽

How Do I Initialize Structs in Go Without Constructors?

Go 中的建構子

處理Go 中定義為結構體的自訂類型時,可能需要使用合理的預設值來初始化它們創建。然而,與傳統的物件導向程式語言不同,Go 沒有專門的結構體建構函數。

建構子的替代方案:新函數

為了解決這種情況,Go 工程師通常會使用「新」功能。這些函數接受初始化所需的參數,並傳回指向新結構體實例的指標:

type Thing struct {
    Name  string
    Num   int
}

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

這種方法允許使用特定預設值初始化結構體值,例如為「Num」欄位分配一個值.

壓縮的新函數語法

對於簡單的結構體,可以使用壓縮語法:

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

非指針回傳類型

如果不需要回傳指針,可以使用“make”函數代替“新”:

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

以上是如何在沒有構造函數的情況下初始化結構體?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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