在Go语言中,type关键字用于定义新的类型。Go语言支持多种内置类型,以及通过结构体(struct)、接口(interface)、命名类型(named type)和类型别名(type alias)等方式创建自定义类型。以下是一些常见的Go语言类型:
基本类型:
int8, int16, int32, int64, uint8, uint16, uint32, uint64, uintptrfloat32, float64complex64, complex128byte, rune(int32的别名,用于表示单个Unicode字符)boolstring引用类型:
[len]T,其中T是元素类型,len是数组长度。数组的长度在声明时确定且不可变。[]T,其中T是元素类型。切片是对数组的一个连续片段的引用,长度可变。map[K]V,其中K是键类型,V是值类型。映射是一种无序的键值对集合。chan T,其中T是元素类型。通道用于在不同Goroutine之间进行数据传递。func(args) (results),表示一个函数类型,接受参数列表args并返回结果列表results。结构体类型:
type Person struct {
Name string
Age int
}
结构体字段在结构体中按声明顺序排列,并且可以通过点操作符(.)访问。
接口类型:
type Shape interface {
Area() float64
Perimeter() float64
}
接口类型可以用于类型断言和类型判断。
命名类型:
type关键字为已存在的类型定义一个新名称。例如:type MyInt int
命名类型可以用于为现有类型添加新的方法或属性。
类型别名:
type关键字为已存在的类型定义一个新的名称和/或新的类型签名。例如:type MySlice []int
类型别名可以用于简化复杂类型的表示或创建具有不同名称但相同底层类型的类型。
此外,Go语言还支持枚举(enum)、联合类型(union type)等高级类型特性,但这些特性在标准Go语言中并未直接提供,而是通过其他方式(如使用常量、结构体或第三方库)来实现。