为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
蛊毒传说 2021-07-09 17:15:11
之间的主要区别是什么:v = t.(aType) // type assertionv = aType(t) // type conversion我应该在哪里使用类型断言或类型转换?
查看完整描述

1 回答

?
偶然的你

TA贡献1841条经验 获得超3个赞

类型断言断言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)

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


查看完整回答
反对 回复 2021-07-12
  • 1 回答
  • 0 关注
  • 206 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信