在Go 中初始化嵌入式結構體
在Go 中使用嵌入式結構體時,常見場景涉及初始化內部匿名結構體。本文解決了這種情況,讓您清楚了解如何使用兩種方法實作初始化。
考慮以下嵌入式結構體 MyRequest:
type MyRequest struct { http.Request PathParams map[string]string }
要初始化 MyRequest,我們需要設定其嵌入的 http.Request 結構的值。實作方法如下:
func New(origRequest *http.Request, pathParams map[string]string) *MyRequest { req := new(MyRequest) req.PathParams = pathParams req.Request = origRequest return req }
在這種方法中,我們首先建立一個新的 MyRequest 物件並將其分配給 req.然後我們相應地設定 PathParams 欄位。隨後,我們透過引用 req.Request 來存取和設定嵌入的 http.Request 結構。
或者,我們也可以使用以下語法初始化嵌入的結構:
req := &MyRequest{ PathParams: pathParams Request: origRequest }
這裡,我們建立具有所需欄位的匿名結構。為了正確初始化,在嵌入結構名稱前面加上“&”前綴非常重要。這會產生具有所需值的 MyRequest 物件。
兩種方法都有效地初始化 MyRequest 中嵌入的 http.Request 結構,讓您可以根據需要自訂和使用它。如需進一步參考,請參閱有關嵌入式結構的命名欄位的 Go 規格。
以上是如何在 Go 中初始化嵌入式結構:兩種方法指南的詳細內容。更多資訊請關注PHP中文網其他相關文章!