golang 类型强转
发布时间:2020-12-16 09:40:01 所属栏目:大数据 来源:网络整理
导读:func main() {content:="{"dd":"dd","ff":["lent"]}"var v interface{}d8(content,v)d9(content,v)}func d9(content string,vv interface{}){err := json.Unmarshal([]byte(content),vv)if err != nil{panic(err)} else{// 如果有ok做判断,强转失败
func main() { content:="{"dd":"dd","ff":["lent"]}" var v interface{} d8(content,v) d9(content,v) } func d9(content string,vv interface{}){ err := json.Unmarshal([]byte(content),&vv) if err != nil{ panic(err) } else{ // 如果有ok做判断,强转失败就会出现为false的情况,如果为false,则不可以再使用强转失败的对象,不然会报错 if mp,mpOk := vv.(map[string] interface{}); mpOk{ loanStatusObj := mp["ff"] // 如果有ok做判断,强转失败就会出现为false的情况,如果为false,则不可以再使用强转失败的对象,不然会报错。 // 这里已经强转会失败的。 loanStatus := loanStatusObj.(string) fmt.Println(loanStatus) } } } func d8(content string,mpOk := vv.(map[string] interface{}); mpOk{ loanStatusObj := mp["ff"] // 如果有ok做判断,强转失败就会出现为false的情况,如果为false,则不可以再使用强转失败的对象,不然会报错。 // 这里已经强转会失败的,但通过loanStatusOk来避免了使用loanStatus对象 if loanStatus,loanStatusOk := loanStatusObj.(string); loanStatusOk{ fmt.Println(loanStatus) } else{ fmt.Println("格式不对,但不会出现异常") fmt.Println("loanStatusOk = " + strconv.FormatBool(loanStatusOk)) } } } } 代码截图: 运行结果: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |