我是 Golang 的新手,我試圖從結構中獲取許多屬性例如:
type Client struct{
name string//1
lastName string//2
age uint//3
}
func main(){
client := Client{name:"Facundo",lastName:"Veronelli",age:23}
fmt.println(client.getLengthAttibutes())//It would print "3"
}
uj5u.com熱心網友回復:
使用反射包的ValueOf()函式回傳一個value結構體。這有一個名為NumFields的方法,它回傳欄位的數量。
import (
"fmt"
"reflect"
)
type Client struct{
name string//1
lastName string//2
age uint//3
}
func main(){
client := Client{name:"Facundo",lastName:"Veronelli",age:23}
v := reflect.ValueOf(client)
fmt.Printf("Struct has %d fields", v.NumField())
}
uj5u.com熱心網友回復:
您可以reflect為此使用該軟體包:
import (
"fmt"
"reflect"
)
type Client struct {
name string //1
lastName string //2
age uint //3
}
func main() {
client := Client{name: "Facundo", lastName: "Veronelli", age: 23}
fmt.Println(reflect.TypeOf(client).NumField())
}
然而,這不是該結構的大小,只是欄位的數量。使用reflect.TypeOf(client).Size()得到結構在記憶體中多少位元組占據。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/369727.html
下一篇:無法在眼鏡蛇引數中插入破折號
