type Employee struct { Name string`format:"normal"`// tag } reflect.ValueOf(*e).FieldByName("Name") // TypeOf第一个返回值为field,第二个返回值为field是否存在 if nameField, ok := reflect.TypeOf(*e).FieldByName("Name"); !ok { t.Error("Failed to get 'Name' field.") } else { t.Log("Tag:format", nameField.Tag.Get("format")) }
不安全编程
不能使用 unsafe 进行强制类型转换,合理的类型转换如下:
1 2 3 4 5 6
type MyInt int funcTestConvert(t *testing.T) { a := []int{1, 2, 3, 4} b := *(*[]MyInt)(unsafe.Pointer(&a)) t.Log(b) }