Go的4种数据类型:
1)基础类型: 数字, 字符串, 布尔类型
2)聚合类型: 数组, 结构体
3)引用类型: 指针, slice, map, 函数, 通道 (全都间接指向程序变量或状态)
4)接口类型
算术运算 % 和 /
1)算术运算符 +, -, *, / 可以应用于整数, 浮点数和复数, 而取模运算符 % 只能应用于整数
2)Go中, 取模余数的正负号总是与被除数一致
3)除法运算的行为取决于操作数是否都为整型
-5%3 // -2
-5%-3 // -2
5.0/4.0 // 1.25
5/4 // 1
输出格式%[1]和#
% 后面的副词 [1] 告知 Printf 重复使用第一个操作数
%o, %x 或%X 之前的副词#告知 Printf 输出相应的前缀 0, 0x 或 0X
o := 0666
fmt.Printf("%d %[1]o %#[1]0\n",o) // "438 666 0666"
x := int64(0xdeadbeef)
fmt.Printf("%d %[1]x %#[1]x %#[1]X\n",x) // "3735928559 deadbeef 0xdeadbeef 0Xdeadbeef"
优先级
优先级的降序排列如下:
1)* / % << >> & &^
2)+ - | ^
3)== != < <= > >=
4)&& ( && 较 || 优先级更高)
5)||
常量声明
声明一组常量, 除了第一项之外, 其他项在等号右侧的表达式都可以省略, 表示会复用前面一项的表达式以及类型
const (
a =1
b
c =2
d
)
fmt.Println(a, b, c, d) // 1 1 2 2
常量生成器iota, 其可以创建一系列相关值, 而不是逐个值显式写出.常量声明中, iota 从0开始取值, 逐项加1
type Weekend int
const (
Sunday Weekend = iota
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
)
// Sunday为0, Monday为1,依次类推