为类型定义别名
type myInt = int
var a myInt
fmt.Printf("%T\n", a) // 结果:int
这里的type
只是为int
定义了一个别名myInt
,本质上还是int
。
基于一个已有的类型定义一个新的类型
type myFloat64 float64 // 只是比上面那种少了个等号
var b myFloat64
fmt.Printf("%T\n", b) // 结果:main.myFloat64
这里确确实实是定义了一个新的类型,只不过这个类型的底层实现和float64
完全一样。
定义结构体
type Student struct {}
定义接口
type Callable interface {}
为函数定义别名
type handle func(i int)