- 定义常量
const PI float = 3.1415926
- 定义变量
var count int
var count int = 10
count := 10
var count = 10
- 标识符与命名规则
- 变量名必须以字母或者下划线开始
- 必须使用英文字母、数字、下划线组成
- 不能使用go关键字
- 大小写敏感
- 布尔型数据
- 布尔型不接受其他数据类型赋值
- 布尔类型不能进行强制类型转换。
- 整数类型
类型 | 字节长度 | 取值范围 |
---|---|---|
int | 4/8 | 32位系统就是int32,64位系统就是int64 |
int8 | 1 | -128~127 |
int16 | 2 | -32768~32767 |
int32 | 4 | -231~(231-1) |
int64 | 8 | -263~(263-1) |
十进制,如 -123、0、256
八进制,以“0”开头的数是八进制,如0123 是八进制123
十六进制,以“0x”开头的数是十六进制,如0x123 是十六进制123
指数形式,由数字和字母e组成,如1e3 代表十进制 1000
- 浮点型数据
浮点数在内存中的存储形式是按照指数形式存储的,共由三部分组成:符号、尾数、指数
有float32、float64。需要注意浮点数的舍入误差。 - 复数
有complex64、complex128,分别是8字节和16字节
是a+bi 的形式。go语言内置函数real(z)可获得该复数的实部,imag(z)可以获得该复数的虚部。 - 字节型数据
字节型数据就是uint8 型数据 - rune 类型
go语言处理Unicode 有个专用的数据类型 rune,它完全等价于 int32。 - uintptr类型
uintptr的类型会根据操作系统决定指针位数,32位操作系统就是4字节,64位操作系统就是8字节。
指针变量初始化后的默认值是nil,go语言中没有NULL常量。
go语言不支持指针运算,比如ptr++,–ptr。
go语言不支持 -> 操作,而是直接使用 . 选择符操作指针对象成员 - 运算符
和其他语言的运算符差不多,有标志位清除运算符和通道运算符是独有的 - 全局变量
go语言的全局变量赋值声明不能使用 := 的形式,必须显示的定义其类型。 - 类型别名
例如:type(word uint16) - 类型转换
go语言是类型安全的,即他不允许数据类型隐式转换,否则会造成精度丢失,所有类型必须显式进行。