💡 go里面的运算符其他语言并无太大区别
1. 算术运算符
1.1 加、减、乘、除,取余
1
2
3
4
5
6
7
8
9
10
11
12
| var (
a = 1
b = 3
)
func main() {
fmt.Println(a+b)
fmt.Println(a-b)
fmt.Println(a/b) // 0,这个没有python好,python直接输出0.33333333
fmt.Println(a*b)
fmt.Println(a%b) //1
}
|
1.2 自增,自减
1
2
3
4
5
6
7
8
9
10
| var (
a = 1
b = 3
)
func main() {
a++ //这是独立的语句,不是赋值!python里这样写是会报错的
b-- //它是直接修改了原变量的值!fmt.Println(a=a+1),fmt.Println(a++)这样都是错的!
fmt.Println(a,b) // 2 2
}
|
2. 关系运算符
看到这,想起来刚上大学那会学c语言的时候了,关系运算符在实际编码中最常用!
尤其是在[[if语法]]判断中经常用
1
2
3
4
5
6
7
8
9
10
11
| var (
a = 1
b = 3
)
func main() {
fmt.Println(a == b) // go语言是强类型,相同类型的变量才能比较
fmt.Println(a != b)
fmt.Println(a >= b)
fmt.Println(a <= b)
fmt.Println(a < b)
}
|
3. 逻辑运算符
与或非
在实际编码中常用,按位&、|、^也会使用到,可以很巧妙的实现我们需要的功能
3.1 逻辑与、逻辑或😀
这里在[[if语法]]里用的也很多。其余的在实际编码中用的场景比较少。除非专门搞数据运算之类会用到。用到了再去翻就好了,左移右移之类的涉及到二进制运算了。
1
2
3
4
5
6
7
| age :=13
if age >=18 && age<=80{
fmt.Println("事情要自己做哦")
}
if age<=18 || age>=80{
fmt.Println("可以寻求帮助哦")
}
|
3.2 逻辑非
在if判断中经常用,if !ok {}
1
2
3
| ismarried:=true
fmt.Println(ismarried) // true
fmt.Println(!ismarried) // false
|
3.3 按位与,或,非
1
2
3
4
5
6
7
8
| func main() {
// & 按位与(两位均位才为1)重要,但实际编程很少用 二进制
fmt.Println(a&b) //001 | 011
// | 按位或(有一个为1就为1)重要
fmt.Println(a|b)
// ^ 亦或,不一样就为1
fmt.Println(a^b)
}
|
out
3.4 左移右移
左移
1
2
| fmt.Println(1<<2) //0001 ->0100
fmt.Println(1<<10) //0001-> 10 0000 0000 1024
|
out
右移
1
| fmt.Println(5>>1) //0101-> 0010
|
out
注意移动范围
1
2
3
4
| var m = int8(1) //只能移动8位 0000 0001
fmt.Println(m << 10) // 0
fmt.Println(1<<10) // 1024
fmt.Println(int64(1)<<10) //1024
|
4. 赋值运算符
4.1 基础赋值运算符
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| var x int = 10
x +=1
fmt.Println(x) //不能直接打印fmt.Println(x +=1),python里这样写也会报错的!
x -=1
fmt.Println(x)
x *=10
fmt.Println(x)
x /=10
fmt.Println(x)
x %=2
fmt.Println(x)
|
out
4.2 逻辑赋值运算符
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| var x = 1
x <<=2 // 0001 ->0100
fmt.Println(x)
x &=2 // 0100 & 0010
fmt.Println(x)
x |=2 // 0000 | 0010
fmt.Println(x)
x ^=2 //0010 ^ 0010
fmt.Println(x)
x >>=2
fmt.Println(x) // fmt.Println(x >>=2)是错的,但是可以fmt.Println(x >>2)
|
out