Maison > développement back-end > Golang > Comment puis-je obtenir la taille correcte d'une structure générique dans Go ?

Comment puis-je obtenir la taille correcte d'une structure générique dans Go ?

Linda Hamilton
Libérer: 2024-11-26 12:25:14
original
587 Les gens l'ont consulté

How Can I Get the Correct Size of a Generic Struct in Go?

Comment déterminer la taille d'une structure générique dans Go

Vous aspirez à créer une fonction générique dans Go qui imite la fonctionnalité sizeof de C, vous permettant de déterminer la taille de n'importe quel structure des données.

Dans votre code, vous avez tenté d'utiliser des interfaces et la réflexion pour y parvenir. Cependant, vous avez rencontré un problème où la taille renvoyée était incorrecte.

La raison de cette différence réside dans le fait que le code a récupéré la taille de la structure Reflect.Value plutôt que l'objet réel encapsulé dans l'interface.

Résolution : tirer parti de Reflect.Type.Size()

Heureusement, il existe une solution simple à ce problème. Le type réflexion.Type inclut une méthode Size() qui fournit la taille du type sous-jacent. En utilisant cette méthode, vous pouvez obtenir la taille de la structure de données elle-même :

size := reflect.TypeOf(T).Size()
Copier après la connexion

Dans votre cas spécifique, cette modification donne la taille correcte de 40 octets, qui intègre le remplissage.

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