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

各种形式的 int 切片的转换

各种形式的 int 切片的转换

Go
扬帆大鱼 2023-02-14 17:42:17
假设我有这些类型type MyInt inttype Ints []inttype MyInts []MyInt使用这些类型我定义了一些变量var is []intvar ints Intsvar myInts MyInts变量is和ints具有不同的类型,但是编译器很乐意编译这一行is = ints类似is并且myInts有不同的类型,但在这种情况下,由于变量的类型不同,因此未编译以下行is = myInts那么,为什么在第一种情况下类型的差异不会停止 comlilation,而在第二种情况下它会停止呢?这是一个重现案例的简单游乐场。
查看完整描述

1 回答

?
慕雪6442864

TA贡献1812条经验 获得超5个赞

有效分配的条件之一如下:

V并且T具有相同的基础类型但不是类型参数并且V 或 T 中至少有一个不是命名类型


变量is的类型[]int未命名类型,它的基础类型与自身相同,即[]int. 变量的类型ints,即Ints,是一个命名类型,它是底层类型[]int

因此,分配is = ints是有效的。


变量myInts的类型MyInts命名类型,它的基础类型是[]MyInt. 类型[]MyInt与不相同[]int

因此,分配is = myInts无效。


查看完整回答
反对 回复 2023-02-14
  • 1 回答
  • 0 关注
  • 66 浏览
慕课专栏
更多

添加回答

举报

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