break default func interface select case defer go map struct chan else goto package switch const if range type continue for import return fallthrough var
make len cap new append copy close delete complex real imag panic recover
操作符与表达式
算法术运算符
运算符
描述
+
相加
-
相减
*
相乘
/
相除
%
求余
1 2 3 4 5 6 7 8 9 10
//arithmetic 算术运算 funcarithmetic() { var a float32 = 8 var b float32 = 3 var c float32 = a + b var d float32 = a - b var e float32 = a * b var f float32 = a / b fmt.Printf("a=%.3f, b=%.3f, c=%.3f, d=%.3f, e=%.3f, f=%.3f\n", a, b, c, d, e, f) }
关系运算符
运算符
描述
==
检查两个值是否相等,如果相等返回 True 否则返回 False
!=
检查两个值是否不相等,如果不相等返回 True 否则返回 False
>
检查左边值是否大于右边值,如果是返回 True 否则返回 False
>=
检查左边值是否大于等于右边值,如果是返回 True 否则返回 False
<
检查左边值是否小于右边值,如果是返回 True 否则返回 False
<=
检查左边值是否小于等于右边值,如果是返回 True 否则返回 False
1 2 3 4 5 6 7 8 9 10 11 12
//relational 关系运算符 funcrelational() { var a float32 = 8 var b float32 = 3 var c float32 = 8 fmt.Printf("a==b吗 %t\n", a == b) fmt.Printf("a!=b吗 %t\n", a != b) fmt.Printf("a>b吗 %t\n", a > b) fmt.Printf("a>=b吗 %t\n", a >= b) fmt.Printf("a<c吗 %t\n", a < b) fmt.Printf("a<=c吗 %t\n", a <= c) }
逻辑运算符
运算符
描述
&&
逻辑 AND 运算符。 如果两边的操作数都是 True,则为 True,否则为 False
||
逻辑 OR 运算符。 如果两边的操作数有一个 True,则为 True,否则为 False
!
逻辑 NOT 运算符。 如果条件为 True,则为 False,否则为 True
1 2 3 4 5 6 7 8 9 10
//logistic 逻辑运算符 funclogistic() { var a float32 = 8 var b float32 = 3 var c float32 = 8 fmt.Printf("a>b && b>c吗 %t\n", a > b && b > c) fmt.Printf("a>b || b>c吗 %t\n", a > b || b > c) fmt.Printf("a>b不成立,对吗 %t\n", !(a > b)) fmt.Printf("b>c不成立,对吗 %t\n", !(b > c)) }
//assignment 赋值运算 funcassignment() { var a, b int = 8, 3 a += b fmt.Printf("a+=b %d\n", a) a, b = 8, 3 a -= b fmt.Printf("a-=b %d\n", a) a, b = 8, 3 a *= b fmt.Printf("a*=b %d\n", a) a, b = 8, 3 a /= b fmt.Printf("a/=b %d\n", a) a, b = 8, 3 a %= b fmt.Printf("a%%=b %d\n", a) //%在fmt里有特殊含意,所以需要前面再加个%转义一下 a, b = 8, 3 a <<= b fmt.Printf("a<<=b %d\n", a) a, b = 8, 3 a >>= b fmt.Printf("a>>=b %d\n", a) a, b = 8, 3 a &= b fmt.Printf("a&=b %d\n", a) a, b = 8, 3 a |= b fmt.Printf("a|=b %d\n", a) a, b = 8, 3 a ^= b fmt.Printf("a^=b %d\n", a) }
补码
1 2 3 4 5
1.按按取反 2.末位加1
最高位为0是正数 最高位为1是负数
变量、常量、字面量
变量类型
类型
go变量类型
fmt输出
整型
int int8 int16 int32 int64 uint uint8 uint16 uint32 uint64