类型别名 与 自定义类型
类型别名:
别名是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类型。
浙公网安备 33010602011771号