首頁 >後端開發 >Golang >如何在 Go 中初始化嵌入式結構:兩種方法指南

如何在 Go 中初始化嵌入式結構:兩種方法指南

Susan Sarandon
Susan Sarandon原創
2024-11-17 15:44:02406瀏覽

How to Initialize an Embedded Struct in Go: A Two-Approach Guide

在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中文網其他相關文章!

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