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

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

PHPz
發布: 2024-02-06 09:45:16
轉載
849 人瀏覽過

如何使用名称具有包名称的嵌套结构来启动 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
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板