
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)) } } }} 代码截图:
运行结果:
总结以上是内存溢出为你收集整理的golang 类型强转全部内容,希望文章能够帮你解决golang 类型强转所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)