首頁  >  文章  >  後端開發  >  如何使用名稱具有套件名稱的巢狀結構來啟動 go 結構

如何使用名稱具有套件名稱的巢狀結構來啟動 go 結構

PHPz
PHPz轉載
2024-02-06 09:45:16821瀏覽

如何使用名称具有包名称的嵌套结构来启动 go 结构

問題內容

我有一個 go 結構體定義如下:

type record struct {
    events.apigatewayproxyrequest          `json:",omitempty"`
    events.apigatewaywebsocketproxyrequest `json:",omitempty"` //nolint:all
    events.sqsevent                        `json:",omitempty"`
}

我想知道如何啟動這個結構。我嘗試過:

Record{events.APIGatewayProxyRequest: {}}

但它給了我一個錯誤:結構文字中的invalid field name events.apigatewayproxyrequest。似乎包含套件名稱的名稱不能用作結構中的鍵名稱。啟動它的正確方法是什麼?


正確答案


將類型嵌入結構時,封閉結構的欄位名稱與嵌入類型的類型名稱(不含套件選擇器)相同。所以:

event:=Record{
  APIGatewayProxyRequest: events.APIGatewayProxyRequest{ ... },
}

初始化的右側是該類型的文字,因此您使用完整的類型名稱(帶有選擇器)。

以上是如何使用名稱具有套件名稱的巢狀結構來啟動 go 結構的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:stackoverflow.com。如有侵權,請聯絡admin@php.cn刪除