运算符

2022-02-05 GoLang 大约 2 分钟

运算符是一种特殊的符号,用以表示数据的运算,赋值和比较。

# 算术运算符

对数值类型的变量进行运算,比如:加减乘除。包含:+ , -, *, /, %, ++, --

package main

import "fmt"

func main() {
	// 正整数
	var n1 int = +10
	fmt.Println(n1) // 10

	// 数值相加
	var n2 int = 4 + 7
	fmt.Println(n2) // 11

	// 字符串相加
	var s1 string = "abc" + "def"
	fmt.Println(s1) // abcdef
  
  // 两个int类型数据运算,结果一定为整数类型
	fmt.Println(10 / 3) // 3
	// 浮点类型参与运算,结果为浮点类型
	fmt.Println(10.0 / 3) // 3.3333333333333335

	// 取余
	fmt.Println(10 % 3) // 1

	// ++自增操作
	// go语言里,++,--操作非常简单,只能单独使用,不能参于运算
	// go语言里,++,--只能在变量的后面,不能写在变量的前面(--a,++a属于错误写法)
	var a int = 10
	a++
	fmt.Println(a) // 11
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32

# 赋值运算符

赋值运算符就是将某个运算后的值,赋给指定的变量。包含:=,+=,-=,*=,/=,%=

package main

import "fmt"

func main() {
	// = 把右侧的运算结果赋值给左侧
	var num2 int = (10+20)%3 + 3 - 7
	fmt.Println(num2) // -4

	// 等价于 num2 = num2 + 20
	num2 += 20
	fmt.Println(num2) // 16
}
1
2
3
4
5
6
7
8
9
10
11
12
13

# 关系运算符

关系运算符的结果都是bool型,也就是要么是false,要么是true。包含:==,!=,>,<,>=,<=

package main

import "fmt"

func main() {
	var age int = 18
	var age2 int = 20
	fmt.Println(age > age2) // false
}
1
2
3
4
5
6
7
8
9

# 逻辑运算符

逻辑运算符:逻辑与、逻辑或、逻辑非,包含:&&,||,!

package main

import "fmt"

func main() {
	var bool1 bool = false
	var bool2 bool = true
	fmt.Println(bool2 && bool1) // false
	fmt.Println(bool2 || bool1) // true
	fmt.Println(!bool2)         // false
}
1
2
3
4
5
6
7
8
9
10
11

# 位运算符

包含:&,|,^

# 其他运算符

包含:&,*

参考指针

# 优先级

go语言有几十种运算符,被分成十几个级别,有的运算符优先级不同,有的运算符优先级相同。

优先级 分类 运算符 结合性
1 逗号运算符 , 从左到右
2 赋值运算符 =、+=、-=、*=、/=、%=、>=、<=、&=、^=、|= 从右到左
3 逻辑或 || 从左到右
4 逻辑与 && 从左到右
5 按位或 | 从左到右
6 按位异或 ^ 从左到右
7 按位与 & 从左到右
8 相等/不等 ==、!= 从左到右
9 关系运算符 <、<=、>、>= 从左到右
10 位移运算符 <<、>> 从左到右
11 加法/减法 +、- 从左到右
12 乘法/除法/取余 *、/、% 从左到右
13 单目运算符 !、*(指针)、&、++、--、+、- 从右到左
14 后缀运算符 ()、[]、-> 从左到右

为了提高优先级可以加括号()

上次编辑于: 2023年7月4日 09:36