go 语言 结构体如何申明默认值 如何转化为json数据
// PanType 定义类型
type PanType struct {
Name string `json:"name"`
Password string `json:"password"`
Children ChildrenPan `json:"children"`
}
// ErrorMsg 定义类型
type ErrorMsg struct {
//json后面为别名
Code int `json:"code"`
Msg string `json:"msg"`
}
//默认初始值
func newPanType(name string) PanType {
str := PanType{
Name: name,
Password: "wqtqw",
}
return str
}
//初始化错误码
var msgErrorCode int = 4000
//封装报错json
func newErrorMsg() bool {
//获取错误信息
msg := recover()
//强制格式化为字符串
str2 := fmt.Sprintf("%s", msg)
str := ErrorMsg{
Code: msgErrorCode,
Msg: str2,
}
fmt.Println(msgErrorCode)
jsonStr, _ := json.Marshal(str)
jsonString := string(jsonStr)
fmt.Println(jsonString)
return true
}
func main() {
//代码执行完 执行方法
defer newErrorMsg()
//默认方法
str := newPanType("jump")
//修改结构体默认密码
str.Password = "easy_password"
//转化为Json字符串
jsonStr, errMsg := json.Marshal(str)
//故意错误码
errMsg = errors.New("error")
if errMsg != nil {
//修改全局变量的错误码
msgErrorCode = 4001
//重新写错误名称
errMsg = errors.New("update error")
//停止运行 抛出
panic(errMsg)
}
fmt.Println(string(jsonStr))
}