在 Go 语言中, type 关键字用于定义新的类型
# type MyInt int 和 type MyInt = int 区别
类型定义 vs 类型别名
type MyInt int定义了一个新的命名类型MyInt, 它底层使用int类型的存储结构,但是它与int类型是 <font color="#ff0000"> 完全独立的 </font>。type MyInt = int则是定义了一个类型别名,MyInt只是int类型的另一个名字,<font color="#ff0000"> 两者是等价的 </font>。- 在编译的时候,类型别名会被替换为
int
因此以下代码会出错, i1(MyInt) 与 i2(int32) 的类型不一样,无法将 i1 的值赋值给 i2
1 | type MyInt int32 |
以下代码正常运行
1 | package main |
# 自定义类型绑定方法
1 | package main |