加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

如何理解两个命名类型在golang中是相同的

发布时间:2020-12-16 09:24:26 所属栏目:大数据 来源:网络整理
导读:type identity的规则规定: 如果两个命名类型的类型名称源自相同的TypeSpec,则它们是相同的 我不太明白两个类型名称是如何来自同一个TypeSpec的.你能解释一下或给我看一个例子吗? 解决方法 只有一个类型名称可以源自TypeSpec.这就是重点.所以 type Foo int6
type identity的规则规定:

如果两个命名类型的类型名称源自相同的TypeSpec,则它们是相同的

我不太明白两个类型名称是如何来自同一个TypeSpec的.你能解释一下或给我看一个例子吗?

解决方法

只有一个类型名称可以源自TypeSpec.这就是重点.所以

type Foo int64
var x Foo
var y Foo

然后两个Foos都起源于相同的TypeSpec,因此它们是相同的Foos.

但是,如果您有两个不同的文件(在不同的包中):

前:

type Foo int64
var x Foo

b.go:

type Foo int64
var y Foo

那么这种情况下的两个Foos并不完全相同.即使它们是相同的类型名称,它们也来自不同的TypeSpecs.其结果是x和y的类型不相同(因此不允许x = y而不进行强制转换).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读