基本数据类型介绍 Link to heading
类型就是值的模版,值必须满足这个模版,不然就会报错
Go支持如下内置基本类型:
-
一种内置布尔类型:bool。
-
11种内置整数类型:int8、uint8、int16、uint16、int32、uint32、int64、uint64、int、uint和uintptr。
-
两种内置浮点数类型:float32和float64。
-
两种内置复数类型:complex64和complex128。
-
一种内置字符串类型:string。
注意:
-
int8 int16后面的数字代表此类型的容量/尺寸。8就是8位/bit。
-
uint8 u开头代表非负整数。uint8范围就是0~255,int8范围-128~127.
-
uintptr、int以及uint类型的值的尺寸依赖于具体编译器实现。 通常地,在64位的架构上,int和uint类型的值是64位的;在32位的架构上,它们是32位的。 编译器必须保证uintptr类型的值的尺寸能够存下任意一个内存地址。
-
一个complex64复数值的实部和虚部都是float32类型的值。 一个complex128复数值的实部和虚部都是float64类型的值。
类型声明 Link to heading
我们可以使用type
声明定义更多自定义布尔和字符串类型。
// 一些类型定义声明
type status bool // status和bool是两个不同的类型,但是最终结果都是bool
type MyString string // MyString和string是两个不同的类型
type Id uint64 // Id和uint64是两个不同的类型
type real float32 // real和float32是两个不同的类型
// 一些类型别名声明
type boolean = bool // boolean和bool表示同一个类型
type Text = string // Text和string表示同一个类型
type U8 = uint8 // U8、uint8和 byte表示同一个类型
type char = rune // char、rune和int32表示同一个类型
零值 Link to heading
每种类型都有一个零值。一个类型的零值可以看作是此类型的默认值。
-
一个布尔类型的零值表示真假中的假。
-
数值类型的零值都是零(但是不同类型的零在内存中占用的空间可能不同)。
-
一个字符串类型的零值是一个空字符串。