登录
首页 >  Golang >  Go问答

golang, interface断言,以下两种写法都正确吗?

来源:SegmentFault

时间:2023-01-08 19:22:39 141浏览 收藏

在Golang实战开发的过程中,我们经常会遇到一些这样那样的问题,然后要卡好半天,等问题解决了才发现原来一些细节知识点还是没有掌握好。今天golang学习网就整理分享《golang, interface断言,以下两种写法都正确吗?》,聊聊go,希望可以帮助到正在努力赚钱的你。

问题内容

func UpFirstLetter(v ...interface{}) string {
    s := v[0].(string)
    return strings.ToUpper(s[0:1]) + s[1:]
}

func UpFirstLetter(v ...interface{}) string {
    s, _ := v[0].(string)
    return strings.ToUpper(s[0:1]) + s[1:]
}

区别在断言成功的判断上,有没有那个“_”都可以吗?

正确答案

区别在于:第一个在断言失败时会 panic;而第二个,你忽略了错误,所以你会得到默认值。

实际效果就是:第一个出问题的时候会崩掉;而第二个出问题的时候,你需要彻夜 debug,来弄明白为什么你的数据坏掉了。

好了,本文到此结束,带大家了解了《golang, interface断言,以下两种写法都正确吗?》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>