1、万能数据类型
interface{ } 能代表任意数据类型
2、包中方法的可见性
包中的方法如果需要在外部引用,需要把方法首字符大写。
3、go语言中的反射
reflect包 func ValueOf(i interface{}) Value {...}获取参数值
func TypeOf(i interface{}) Type{...} 获取参数的类型
t := reflect.TypeOf(stu1)
t.NumField(); 获取所有字段数量
field := t.Field(i)获取某个字段
t.NumMethod()获取所有方法数量
method := v.Method(i)获取某个方法
4、go语言中的 json处理
// 序列化成map
m := make(map[string]interface{}, 0)
if err := json.Unmarshal([]byte(jsonStr), &m); err != nil {
panic(err)
}
//反序列化成对象
re := Requst{}
if err := json.Unmarshal([]byte(jsonStr), &re); err != nil {
panic(err)
}
// 取单个key,
userName := gjson.Get(jsonStr, "userName")