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
Linda Hamiltonoriginal
2024-11-26 12:25:14560parcourir

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()

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!

Déclaration:
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