类型别名 与 自定义类型
类型别名:
别名是1.9版本添加的新功能
type TypeAlias = Type
type byte = uint8 type rune = int32
自定义类型:
在Go中有基本的数据类型,比如:string,int,bool等。还可以使用type关键字来自定义类型。
自定义类型是定义了一个全新的类型。可以基于内置的基本类型定义,也可以通过struct定义。
type MyInt int 将 MyInt 定义为 int 类型
通过 type 关键字的定义,MyInt就是一种新的类型,它具有int的特性
区别:
类型别名与自定义类型,表面上看只有一个 = 的差别,通过代码来理解它们之间的区别。
package main import ( "fmt" ) func main() { type NewInt int // 自定义 type MyInt = int // 别名 var a NewInt var b MyInt fmt.Printf("a的类型:%T \n",a) // a的类型:main.NewInt fmt.Printf("b的类型:%T \n",b) // b的类型:int }
a的类型是 main.NewInt,表示main包下定义的NewInt类型。b的类型是int。
MyInt类型只会在代码中存在,编译完成时并不会有MyInt类型。