如何理解两个命名类型在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而不进行强制转换). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |