github.com/qiuhoude/go-web@v0.0.0-20220223060959-ab545e78f20d/prepare/11_reflect/rtype/type.go (about) 1 package rtype 2 3 import "fmt" 4 5 type User struct { 6 Name string `json:"name" bson:"b_name"` 7 Age *int `json:"age"` 8 Love interface{} `json:"love"` 9 lv int `json:"lv"` 10 } 11 12 func (u User) GetLv() int { 13 return u.lv 14 } 15 16 func (u *User) SetLv(lv int) { 17 u.lv = lv 18 } 19 20 func (u User) Print(prfix string) { 21 if u.Age == nil { 22 // 对nil取 * 是会panic的 23 fmt.Printf("%s:Name is %s,Age is ? ageAddr=%v Love=%v lv=%d \n", prfix, u.Name, u.Age, u.Love, u.lv) 24 } else { 25 fmt.Printf("%s:Name is %s,Age is %v ageAddr=%v Love=%v lv=%d \n", prfix, u.Name, *u.Age, u.Age, u.Love, u.lv) 26 } 27 } 28 29 type User1 struct { 30 B byte 31 I32 int32 32 I64 int64 33 }