Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk memulakan struktur go dengan struktur bersarang yang namanya mempunyai nama pakej

Bagaimana untuk memulakan struktur go dengan struktur bersarang yang namanya mempunyai nama pakej

PHPz
PHPzke hadapan
2024-02-06 09:45:16843semak imbas

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

Kandungan soalan

Saya mempunyai struktur go yang ditakrifkan seperti berikut:

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

Saya ingin tahu bagaimana untuk memulakan struktur ini. Saya cuba:

Record{events.APIGatewayProxyRequest: {}}

Tetapi ia memberi saya ralat: peristiwa nama medan tidak sah.apigatewayproxyrequest dalam struct literal . Nampaknya nama yang mengandungi nama pakej tidak boleh digunakan sebagai nama utama dalam struktur. Apakah cara yang betul untuk memulakannya?


Jawapan betul


Apabila membenamkan jenis ke dalam struktur, nama medan struktur yang disertakan adalah sama dengan nama jenis jenis terbenam (tanpa pemilih pakej). Jadi:

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

Sebelah kanan permulaan ialah literal untuk jenis, jadi anda menggunakan nama jenis penuh (dengan pemilih).

Atas ialah kandungan terperinci Bagaimana untuk memulakan struktur go dengan struktur bersarang yang namanya mempunyai nama pakej. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam