Go语言与C/C++类似,C++通过typedef关键字自定义类型(别名、定义结构体等),Go语言则通过type关键字自定义类型。
使用type关键字自定义类型的语法格式如下。
type newType oldType
参数说明如下。
oldType:可以是自定义类型、预声明类型、未命名类型中的任意一种。
newType:新类型。
newType和oldType应当是两个完全不同的类型。
下面通过几个示例演示如何使用type关键字自定义类型。代码如下。
在Go语言中,类型可以分为命名类型和未命名类型。其中:
命名类型使用标识符表示。Go语言允许用户定义类型;当用户声明新类型时,这个声明就给编译器提供一个框架,告知编译器必要的内存大小和表示信息。声明后的类型的使用方式类似于Go语言的内置类型。在上述示例代码中,INT、Map和myMap都是命名类型。
未命名类型是由预声明类型、关键字和操作符组合而成的类型。未命名类型又称为类型字面量(Type Literal)。Go语言的基本类型中的复合类型包括:数组(array)、切片(slice)、字典(map)、通道(channel)、指针(pointer)、函数字面量(function)、结构(struct)和接口(interface),这些类型都是类型字面量,也是未命名类型。