登录
首页 >  Golang >  Go问答

类型转换和类型断言有什么区别?

来源:Golang技术栈

时间:2023-04-30 22:34:47 420浏览 收藏

目前golang学习网上已经有很多关于Golang的文章了,自己在初次阅读这些文章中,也见识到了很多学习思路;那么本文《类型转换和类型断言有什么区别?》,也希望能帮助到大家,如果阅读完后真的对你学习Golang有帮助,欢迎动动手指,评论留言并分享~

问题内容

之间的主要区别是什么:

  1. v = t.(aType) // type assertion
  2. v = aType(t) // type conversion

我应该在哪里使用类型断言或类型转换?

正确答案

类型断言断言t(接口类型)实际上是 aaType并且t将是aType; 即包装在t界面中的那个。例如,如果您知道您var reader io.Reader实际上是*bytes.Buffer您可以做到的var br *bytes.Buffer = reader.(*bytes.Buffer)

类型转换将一种(非接口)类型转换为另一种类型,例如 a var x uint8to 和 int64 like var id int64 = int64(x)

经验法则 :如果您必须将具体类型包装到接口中并希望返回具体类型,请使用类型断言(或类型切换)。如果您需要将一种具体类型转换为另一种,请使用类型转换。

今天关于《类型转换和类型断言有什么区别?》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

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