一:理论

        GoLang1.9后对內建定义类型使用了新的写法:

                type NewName = Type

        这个NewName只是Type的别名。NewName和Type是一致的类型。

        而类型定义,则是会产生新的类型。虽然新类型和旧类型是一样的类型。但会被认为是不同的类型名字。

        type NewName Type

二:实践

(1)类型别名

 

        编译时报错,调用Show()方法时,产生歧义。因为newType和oldType是同名同样的类型

(2)类型定义 

 

        对newType使用类型定义。此时newType会被认为是新的类型名称。再调用Show()方法时,就能做出区分是使用newType类型。不会再产生歧义。