Maison > développement back-end > Golang > le corps du texte

Comment convertir une tranche de structures anonymes en une tranche de structures non anonymes en Go ?

Patricia Arquette
Libérer: 2024-10-27 11:40:01
original
863 Les gens l'ont consulté

How to Convert a Slice of Anonymous Structs to a Slice of Non-Anonymous Structs in Go?

Conversion de type entre tranches de structures dans Go

Problème :

Dans une tentative de Si vous convertissez une tranche de structures anonymes en une tranche de structures non anonymes, des erreurs se produisent. Cela soulève des questions sur l'équivalence des structures avec et sans balises JSON et sur la compatibilité des différentes tranches.

Réponse :

Différences entre les types de structure :

Les structures avec différentes balises JSON sont considérées comme des types différents car les balises affectent l'encodage et le décodage des données JSON.

Options de conversion :

1. Copier par itération :

Il s'agit de la méthode recommandée, mais elle est plus lente et plus détaillée. Cela implique de copier chaque élément de la tranche de structure anonyme dans la tranche de structure non anonyme.

<code class="go">ls := make(ListSociete, len(res))
for i := 0; i < len(res); i++ {
    ls[i].Name = res[i].Name
}
return ls, nil</code>
Copier après la connexion

2. Conversion non sécurisée :

Il s'agit d'une méthode non sécurisée qui suppose que la structure de données sous-jacente des deux types de structure est identique.

<code class="go">return *(*ListSociete)(unsafe.Pointer(&res)), nil</code>
Copier après la connexion

Avertissement :

La conversion non sécurisée peut entraîner un comportement imprévisible et n'est pas recommandée pour une utilisation générale. Son utilisation peut entraîner des corruptions de mémoire ou d'autres erreurs inattendues.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!