Heim >Backend-Entwicklung >Golang >Wie kann ich die richtige Größe einer generischen Struktur in Go ermitteln?
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.
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!