Maison  >  Article  >  développement back-end  >  Comment démarrer une structure go avec une structure imbriquée dont le nom porte le nom du package

Comment démarrer une structure go avec une structure imbriquée dont le nom porte le nom du package

PHPz
PHPzavant
2024-02-06 09:45:16821parcourir

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

Contenu de la question

J'ai une structure go définie comme suit :

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

Je veux savoir comment démarrer cette structure. J'ai essayé :

Record{events.APIGatewayProxyRequest: {}}

Mais cela m'a donné une erreur : nom de champ invalide events.apigatewayproxyrequest dans la structure littérale . Il semble que les noms contenant des noms de packages ne puissent pas être utilisés comme noms de clés dans les structures. Quelle est la bonne façon de le démarrer ?


Bonne réponse


Lors de l'intégration d'un type dans une structure, les noms de champs de la structure englobante sont les mêmes que les noms de type du type intégré (sans le sélecteur de package). Alors :

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

Le côté droit de l'initialisation est le littéral du type, vous utilisez donc le nom complet du type (avec le sélecteur).

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer