gpt4 book ai didi

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

转载 作者:IT老高 更新时间:2023-10-28 13:00:14 28 4
gpt4 key购买 nike

两者的主要区别是什么:

  1. v = t.(aType)//类型断言
  2. v = aType(t)//类型转换

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

最佳答案

类型断言断言 t(一个接口(interface)类型)实际上是一个 aType 并且 t 将是一个 aType;即包装在 t 接口(interface)中的那个。例如。如果你知道你的 var reader io.Reader 实际上是一个 *bytes.Buffer 你可以做 var br *bytes.Buffer = reader.(*bytes.缓冲区).

类型转换将一种(非接口(interface))类型转换为另一种,例如var x uint8 to and int64 like var id int64 = int64(x)

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

关于go - 类型转换和类型断言有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20494229/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com