作者回复: 尽量做到能让大多数人满意:)
作者回复: 两者都是为了隔离变化。
别名类型“另起炉灶”的只是名字,主要是向上层应用隐藏下层类型的真实名称。这样一来,下层类型体系在重构的时候就可以换名字了(不会影响到上层代码)。
类型再定义更彻底一些。主要是为了另外构建一个与潜在类型有所关联(有一定的互操作性)但又不同的类型。基于这个新类型,我们可以构建另外一套操作或者类型体系,而不用去改动潜在类型(或者说潜在类型所在的体系)。
作者回复: 我在文章里说了:“潜在类型相同的不同类型的值之间是可以进行类型转换的”。这属于语法规则。
它们虽然代表着不同的类型,但本质上是同源的。也就是说,它们的底层结构是相同的。在这样情况下,在类型转换时值会被复制,即两个值会在不同的内存地址上。
作者回复: 正数的补码等于其自身。
作者回复: 对的,我跟编辑说一下,谢谢。
作者回复: 你可以参看一下,Go语言规范:https://golang.google.cn/ref/spec#Types ,这才是根本。