自定义类型
概念说明
自定义类型是用 type 基于已有类型定义出来的新类型。
它和底层类型有相同的存储方式,但在 Go 类型系统里是一个独立类型。
自定义类型常用于给普通值增加业务语义。
例如把 int 包装成 StatusCode,代码里就能看出这个整数代表“状态码”。
语法/规则
- 使用
type 新类型名 底层类型定义自定义类型。 - 自定义类型可以绑定方法。
- 自定义类型和底层类型不是同一个类型,比较或赋值时通常需要显式转换。
- 常量可以声明为自定义类型,便于集中维护业务枚举值。
- 自定义类型适合表达业务语义,不适合为了“换名字”而滥用。
语法模板
| |
状态码类型示例
| |
输出结果:
| |
常见错误
- 误以为
type StatusCode int定义出来的类型可以直接当作int使用,实际比较时通常需要转换。 - 只用
int表示所有业务码,导致代码里看不出值的含义。 - 给简单类型绑定过多方法,让类型承担了超出它本身含义的职责。