Heim >Backend-Entwicklung >Golang >Wie kann ich die richtige Größe einer generischen Struktur in Go ermitteln?

Wie kann ich die richtige Größe einer generischen Struktur in Go ermitteln?

Linda Hamilton
Linda HamiltonOriginal
2024-11-26 12:25:14563Durchsuche

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

So erreichen Sie die Bestimmung der generischen Strukturgröße in Go

Sie möchten in Go eine generische Funktion erstellen, die die Größenfunktionalität von C nachahmt und es Ihnen ermöglicht, die Größe jeder Funktion zu bestimmen Datenstruktur.

In Ihrem Code haben Sie versucht, Schnittstellen und Reflektion zu nutzen, um dies zu erreichen. Es ist jedoch ein Problem aufgetreten, bei dem die zurückgegebene Größe falsch war.

Der Grund für diese Diskrepanz liegt in der Tatsache, dass der Code die Größe der Reflect.Value-Struktur abgerufen hat und nicht das tatsächliche Objekt, das in der Schnittstelle gekapselt ist.

Lösung: Reflect.Type.Size() nutzen

Glücklicherweise gibt es eine einfache Lösung für dieses Problem. Der Typ „reflect.Type“ enthält eine Size()-Methode, die die Größe des zugrunde liegenden Typs bereitstellt. Mit dieser Methode können Sie die Größe der Datenstruktur selbst ermitteln:

size := reflect.TypeOf(T).Size()

In Ihrem speziellen Fall ergibt diese Änderung die korrekte Größe von 40 Bytes, die Auffüllung beinhaltet.

Das obige ist der detaillierte Inhalt vonWie kann ich die richtige Größe einer generischen Struktur in Go ermitteln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn