GO内置运算符(新手笔记)
1.算术运算符
2.关系运算符
3.逻辑运算符
4.位运算符
5.赋值运算符
1.算术运算符
运算符 | 描述 |
---|---|
+ | 相加 |
- | 相减 |
* | 相乘 |
/ | 相除 |
% | 求余 |
package main
import "fmt"
func main() {
a := 100
b := 20
// 快捷输入时的符号最好用数字键盘上的符号
//加:a+b 快捷输入 (a+b).p
fmt.Printf("(a + b): %v\n", (a + b))
//减:a-b 快捷输入 (a-b).p
fmt.Printf("(a - b): %v\n", (a - b))
//乘:a*b 快捷输入 (a*b).p
fmt.Printf("(a * b): %v\n", (a * b))
//除:a/b: 快捷输入 (a/b).p
fmt.Printf("(a / b): %v\n", (a / b))
//求余:a%b 快捷输入 (a%b).p 需要在fmt.Printf("(a % b): %v\n", (a % b))第一个a%b中加%
fmt.Printf("(a %% b): %v\n", (a % b))
}
//输出结果
(a + b): 120
(a - b): 80
(a * b): 2000
(a / b): 5
(a % b): 0
注意的是"++“(自增)和”–"在GO语言中是单独的语句,并不是运算符
package main
import "fmt"
func main() {
a := 100
b := 100
a++
fmt.Printf("a: %v\n", a)
b--
fmt.Printf("b: %v\n", b)
}
//输出结果
a: 101
b: 99
2.关系运算符
运算符 | 描述 |
---|---|
== | 等于 |
> | 大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
!= | 不等于 |
package main
import "fmt"
func main() {
a := 100
b := 20
//等于 == 只用了快速定义var,(a==b).var
u := (a == b)
//快捷输入 u.p
fmt.Printf("u: %v\n", u)
//大于:快捷输入(a>b).p
fmt.Printf("(a > b): %v\n", (a > b))
//小于: 快捷输入(a<b).p
fmt.Printf("(a < b): %v\n", (a < b))
//大于等于: (a>=b).p
fmt.Printf("(a >= b): %v\n", (a >= b))
//小于等于:(a<=b).p
fmt.Printf("(a <= b): %v\n", (a <= b))
//不等于:(a!=b).p
fmt.Printf("(a != b): %v\n", (a != b))
}
//输出结果
u: false
(a > b): true
(a < b): false
(a >= b): true
(a <= b): false
(a != b): true
注意的是"++“(自增)和”–"在GO语言中是单独的语句,并不是运算符
3.逻辑运算符
运算符 | 描述 |
---|---|
&& | 逻辑and运算符,同Ture才则为Ture,否则是False |
|| | 逻辑or运算符,有一个Ture则为Ture,否则是False |
! | 逻辑NOT运算符,如果条件为Ture则为False,否则为Ture |
package main
import "fmt"
func main() {
a := true
b := false
b2 := (a && b)
fmt.Printf("b2: %v\n", b2)
fmt.Printf("(a || b): %v\n", (a || b))
fmt.Printf("a: %v\n", !a)
}
//输出结果
b2: false
(a || b): true
a: false
4.位运算符
运算符 | 描述 |
---|---|
& | 参与运算的两数各对应的二进位相与(两个数均为1才为1) |
| | 参与运算的两数各对应的二进位相或(两位有一个1就为1) |
^ | 参与运算的两数各对应的二进位相异或,当两对为的二进位相异时,结果为1(两位不一样为1) |
<< | 左移n位数就是乘以2的n次方,"a<<b"中把a的各二进位全部左移b位,高位丢弃,低位补0 |
>> | 右移n位数就是除以2的n次方,"a>>b"是的a的各二进位全部右移b位 |
package main
import "fmt"
func main() {
a := 4
fmt.Printf("a: %b\n", a) //a: 0100
b := 3
fmt.Printf("b: %b\n", b) //b: 0011
//同时为1才为1
fmt.Printf("(a & b): %v\n", (a & b)) //0000
//有一个1就为1
fmt.Printf("(a | b): %b\n", (a | b)) //0111
fmt.Printf("(a ^ b): %b\n", (a ^ b)) //0111
fmt.Printf("(a >> b): %v\n", (a >> b)) //0
fmt.Printf("(a << b): %b\n", (a << b)) //0100000
}
5.赋值运算符
运算符 | 描述 |
---|---|
= | 简单的赋值运算符,将一个表达式的值赋给左边 |
+= | 相加后赋值 |
-= | 相减后赋值 |
*= | 相乘后赋值 |
/= | 相除后赋值 |
%= | 未余后赋值 |
<<= | 左移后赋值 |
>>= | 右移后赋值 |
&= | 按位与后赋值 |
|= | 按位或赋值 |
^= | 按位异或后赋值 |
package main
import "fmt"
func main() {
var a int
a = 100
a += 1
fmt.Printf("a: %v\n", a)
a -= 1
fmt.Printf("a: %v\n", a)
a *= 2
fmt.Printf("a: %v\n", a)
a /= 2
fmt.Printf("a: %v\n", a)
a %= 2
fmt.Printf("a: %v\n", a)
}
//输出结果
a: 101
a: 100
a: 200
a: 100
a: 0