ich eine generische Funktion schreibe, das jede Art von Struktur erhalten und die Rück Größe dieser Struktur, ähnlich wie sizeof Funktion in C-Sprache.generische Funktion Größe jeder Struktur in golang zu bekommen
Ich versuche, dies mit der Schnittstelle und Reflexion zu tun, aber ich bin nicht in der Lage, das richtige Ergebnis zu erhalten. Code ist unter
package main
import (
"fmt"
"reflect"
"unsafe"
)
func main() {
type myType struct {
a int
b int64
c float32
d float64
e float64
}
info := myType{1, 2, 3.0, 4.0, 5.0}
getSize(info)
}
func getSize(T interface{}) {
v := reflect.ValueOf(T)
const size = unsafe.Sizeof(v)
fmt.Println(size)
}
Dieser Code gibt falsches Ergebnis als 12 zurück. Ich bin sehr neu zu Golang, bitte hilf mir dabei.
danke. Es hat gut funktioniert – sujin
Alternativ können Sie 'unsafe.Sizeof (myType {})' verwenden. – thwd
@thwd Sie haben Recht, aber meine getSize-Funktion muss die Größe jeder Struktur finden, sie muss den Typ der Struktur während der Laufzeit finden. Aus diesem Grund habe ich reflect Paket gewählt – sujin