自定义类型
类型定义
概念
- type definition: 基于已有类型定义新类型;
- 新类型: 与底层类型不是同一类型;
- 底层类型: 决定新类型的存储和基础操作;
语法格式
// UserID 是新定义的类型, int64 是它的底层类型
type UserID int64
func main() {
// 100 是无类型整数常量, 可赋值给 UserID
var id UserID = 100
// UserID 的底层类型是 int64, 所以支持整数类型的基础运算
println(id + 1) // 输出 101
var n int64 = 200
// id = n // 报错, UserID 与 int64 不是同一类型
id = UserID(n) // 可以, 显式转换 int64 为 UserID
println(id) // 输出 200
}
类型别名
概念
- type alias: 为已有类型创建别名;
- 使用场景: 迁移 API、提供语义化名字;
- 不会引入新类型, 仅为已有类型提供别名;
语法格式
type Byte = uint8 // Byte 与 uint8 完全相同