自定义类型

Go语言中有一些基本数据类型,比如:intstringbool等,这些都是官方给直接定义好了的。当然,除了这些已经定义好了的数据类型,Go语言也支持自定义数据类型,例如:

  1. type myInt int

上面就是定义了一个myInt的数据类型,它具有int的特性,比如:

  1. package main
  2. import "fmt"
  3. // 自定义一个类型
  4. type myInt int
  5. func main() {
  6. // 定义一个变量a,是myInt类型
  7. var a myInt
  8. a = 10
  9. fmt.Println(a)
  10. }

类型别名

类型别名,顾名思义就是为某个类型添加一个别名,也就是起小名的意思,类似于我们在Linux中为某个命令用alias起别名一样。

在Go语言中起别名的语法如下:

  1. type typeAlias = type

比如:

  1. type stringAlias = string

上面就是为string起了一个别名叫stringAlias

自定义类型是我们自己新定义一个类型,它与其他类型没有任何关系,即使它们的功能一样,而且自定义类型只在代码中存在,编译完就没有这个类型了。而类型别名仅仅是为某个类型起了一个名字,就算这个别名不存在了,这个类型本身是存在的。