package main
import (
"fmt"
"reflect"
)
type Info struct {
sex int
age int
name string
address string
}
/*type User struct{
like string
sex int
Info
}*/
//指针,改变原来的User对象值
/*func use(user *User){
user.name="指针"
user.age=15
user.address="深圳市"
fmt.Println("func use user in use:",*user)
}*/
//zhi chandi, 不改变原来USer对象值
/*func use(user User){
user.name="指针"
user.age=15
user.address="深圳市"
fmt.Println("func use user in use:",user)
}*/
func main() {
//user:=User{}
//user.sex=1//这里修改的外部结构User里面的sex字段值
//user.Info.sex=2//这里修改的是嵌入结构Info的sex字段值
//fmt.Println(user)
//声明调用
//user:=User{}
//use(user)
//fmt.Println(user)
type T struct {
A int
B string
}
t := T{23, "skidoo"}
//得到列属性
s := reflect.ValueOf(&t).Elem()
//得到类型指针
typeOfT := s.Type()
//得到列属性
for i := 0; i < s.NumField(); i++ {
//指针移动到列
f := s.Field(i)
fmt.Printf("%d: %s %s = %v\n", i,typeOfT.Field(i).Name, f.Type(), f.Interface())
fmt.Println("-")
}
}
有疑问加站长微信联系(非本文作者)