type ReqExample struct { Name string`json:"name"` Teacher string`json:"teacher"` Score int64`json:"score"` }
// 对结构体中的 string 类型的 field 进行 trimSpace // req 是引用类型,因为要对其 field 进行修改 functrimSapce(req interface{}) { // v := reflect.Indirect(reflect.ValueOf(req)) v := reflect.ValueOf(req).Elem() for i := 0; i < v.NumField(); i++ { f := v.Field(i) if f.Kind() == reflect.String { s := strings.TrimSpace(f.String()) f.SetString(s) } } }
funcmain() { req := ReqExample{ Name: " Oscar ", Teacher: " Bob Alice ", Score: 323, } fmt.Printf("before: %+v\n", req) // 因为要修改其中的 field, 所以这里需要传递引用 trimSapce(&req) fmt.Printf("after : %+v\n", req) }
// 输出: // before: {Name: Oscar Teacher: Bob Alice Score:323} // after : {Name:Oscar Teacher:Bob Alice Score:323}