C dilinde sizeof işlevine benzer yapıda her türlü almak ve bu yapının büyüklüğü dönmek bir genel işlevi, yazıyorum herhangi yapının büyüklüğünü elde etmek.jenerik fonksiyon golang
Arabirimi ve yansımayı kullanarak bunu yapmaya çalışıyorum ancak doğru sonucu alamıyorum. Kod Ben golang çok yeniyim 12 olarak Bu kod dönüş yanlış sonuç, lütfen bu konuda bana yardımcı
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)
}
altındadır.
teşekkürler. İyi çalıştı – sujin
Alternatif olarak, 'güvensiz.Sizeof (myType {})' kullanabilirsiniz. – thwd
@thwd Haklısınız ama getSize işlevim herhangi bir yapının boyutunu bulmak zorundadır, çalışma süresi sırasında yapı tipini bulmak zorundadır. Bu yüzden yansıttı paketi seçtim – sujin