From e2fed61ce7f8fd87963345aaca7dd4c8df1d5742 Mon Sep 17 00:00:00 2001 From: phrack <397767872@qq.com> Date: Sat, 23 Oct 2021 10:24:33 +0000 Subject: [PATCH] =?UTF-8?q?add=20day5/=E4=BD=9C=E4=B8=9A/=E4=BD=9C?= =?UTF-8?q?=E4=B8=9A.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../\344\275\234\344\270\232" | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 "day5/\344\275\234\344\270\232/\344\275\234\344\270\232" diff --git "a/day5/\344\275\234\344\270\232/\344\275\234\344\270\232" "b/day5/\344\275\234\344\270\232/\344\275\234\344\270\232" new file mode 100644 index 0000000..dc3c7fd --- /dev/null +++ "b/day5/\344\275\234\344\270\232/\344\275\234\344\270\232" @@ -0,0 +1,43 @@ +package main + +import ( + "fmt" + "reflect" +) + +func contruct_struct() { + userType := reflect.TypeOf(User{}) + userValue := reflect.New(userType) + userValue.Elem().FieldByName("age").SetInt(20) + if user, ok := userValue.Interface().(*User); ok { + fmt.Println(user.Gender) + } + u := User{Gender: true} + fmt.Println(u.Gender) +} + +func construct_slice_and_update() { + sliceType := reflect.TypeOf([]User{}) + sliceValue := reflect.MakeSlice(sliceType, 2, 10) + sliceValue.Index(0).Set(reflect.ValueOf(User{age: 10, Gender: true})) + sliceValue.Index(1).Set(reflect.ValueOf(User{age: 20, Gender: true})) + + s := sliceValue.Interface().([]User) + fmt.Println(s[0].age) + fmt.Println(s[1].age) + + sliceValue2 := reflect.ValueOf(&s) + sliceValue2.SetLen(4) + sliceValue2.Elem().Index(2).Set(reflect.ValueOf(.....)) + +} + +func main() { + // contruct_struct() + + s := sliceValue.Interface().([]User) + fmt.Println(s[0].age) + fmt.Println(s[1].age) + + construct_slice_and_update() +} -- Gitee