之间的主要区别是什么: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 uint8
to 和 int64 like var id int64 = int64(x)
。
经验法则:如果您必须将具体类型包装到接口中并希望恢复具体类型,请使用类型断言(或类型切换)。如果您需要将一种具体类型转换为另一种,请使用类型转换。
- 1 回答
- 0 关注
- 206 浏览
添加回答
举报
0/150
提交
取消