Go基本类型和字面量
Go基本类型
基本类型和字面量的关系
类型(type)可以看作是值(value)的模板, 值可以看作是类型的实例。
基本内置类型
Go支持如下基本类型:
- 布尔类型:
bool
- 整数类型:
int8
,uint8
,int16
,uint16
,int32
,uint32
,int64
,uint64
,int
,uint
和uintptr
。 - 浮点类型:
float32
和float64
。 - 复数类型:
complex64
和complex128
。 - 字符串类型:
string
。
其中Go有两种内置类型别名(type alias): byte
是uint8
的内置别名。我们可以将byte
和uint8
看作同一个类型。rune
是int32
的内置别名。我们可以将rune
和6int32
看作同一个类型。
以u
开头的整数类型都是无符号整数类型。 无符号整数类型的值都是非负的。
一个complex64
复数值得实部和虚部都是float32
类型得值。一个complex128
复数值得实部和虚部都是float64
类型得值。
uintptr
、int
和uinit
类型得值得尺寸依赖具体编辑器实现。通常在64位架构上,int
和uint
类型得值是64位得;在32位架构上, 他们是32位得。 编辑器必须保证uintptr
类型的值能够存下任意一个内存地址。
零值
每一个类型都有一个零值。一个类型的零值可看作是类型的默认值。
- 一个布尔类型的零值是真假中的假。
- 数值类型的零值都是零。
- 字符串类型的零值是一个空字符串。
基本类型的字面表示形式
布尔类型字面量形式
我们可将false
和true
这两个预声明常量当作布尔类型的字面量形式。
整数类型值字面量形式
整数类型有四种字面量形式: 十进制、八进制、十六进制和二进制。其中十六进制必须使用(0x或0X开头),八进制必须使用(0、0o或者0O开头), 二进制表示必须(使用0b或者0B开头),十进制必须不能用0开头。
浮点数类型值字面量形式
一个浮点数字面量形式可能包括一个十进制整数部分、小数点、一个十进制小数部分和一个以10为底得整数指数部分。整数指数部分有字母e
或者E
带一个十进制整数字面量组成(xEn表示x
乘以10^n
的意思, 而xE-n
表示x
除以10^n
的意思)。