本章节关键词
- 变量类型写在变量后
- 编译器可推测变量类型
- 没有char,只有rune(专门节讲解)
- 原生支持复数类型
3.1 内建变量类型
- bool,string
- 整数 (u)int, (u)int8, (u)int16 ,(u)int32, (u)int64, uintptr(指针) 加u无符号整数,不加u有符号整数;有符号整数分两类:规定长度的,不规定长度的(跟系统来,32位系统为32,64位系统为64)
- byte ,rune(字符型) (长度32位)
- 浮点数:float32,float64,complex64,complex128 complex64的实部和虚部都是float32,complex128的实部和虚部都是float64。
3.2 变量定义
3.2.1方法内变量定义
var 和 ":=",遵循名称在前类型在后的规则,变量类型可省略,变量定义必有初值(系统自动),变量定义后必须用到。
- var c string = "abc"
- c string := "abc"
- c := "abc"
- var c string //系统自动初始化 ""
3.2.2 包内变量定义
包内定义只能用var关键字,不能使用 ":="
1.
var aa = 11
2.
var (
ss = true
bb = "abc"
)
3.3 常量定义
常量定义用关键字const,go常量不用const不定义类型可以供多个类型使用,定义了类型,只能用一个类型使用,定义常量有一个好用的关键字 iota。
1.
const a string = "abc"
2.
const (
filename = "abc.txt"
b, c = 3, 4
)
3.
const (
cpp = iota
_
apex
java = 1
python = 2
golang = 3
)
4.
const (
b = 1 << (10 * iota)
kb
mb
gb
tb
pb
)
iota是golang语言的常量计数器,只能在常量的表达式中使用。iota在const关键字出现时将被重置为0(const内部的第一行之前),const中每新增一行常量声明将使iota计数一次(iota可理解为const语句块中的行索引)。使用iota能简化定义,在定义枚举时很有用。