当前位置:网站首页>10-golang运算符
10-golang运算符
2022-07-01 06:10:00 【咸蛋黄派】
Go 语言内置的运算符有:
- 算术运算符
- 关系运算符
- 逻辑运算符
- 位运算符
- 赋值运算符
算术运算符
运算符 | 描述 |
---|---|
+ | 相加 |
- | 相减 |
* | 相乘 |
/ | 相除 |
% | 求余 |
注意:++
(自增)和--
(自减)在Go语言中是单独的语句,并不是运算符。
实例
package main
import "fmt"
func main() {
a := 100
b := 10
// 当第一次声明该变量时,需要 := ;如果已经声明过变量,只需要 = 即可
x := a + b
fmt.Printf("x: %v\n", x)
x = a - b
fmt.Printf("x: %v\n", x)
x = a * b
fmt.Printf("x: %v\n", x)
x = a / b
fmt.Printf("x: %v\n", x)
x = a % b
fmt.Printf("x: %v\n", x)
// 变量进行自增和自减
a++
b--
fmt.Printf("a: %v\n", a)
fmt.Printf("b: %v\n", b)
}
输出结果
x: 110
x: 90
x: 1000
x: 10
x: 0
a: 101
b: 9
关系运算符
运算符 | 描述 |
---|---|
== | 检查两个值是否相等,如果相等返回 True 否则返回 False。 |
!= | 检查两个值是否不相等,如果不相等返回 True 否则返回 False。 |
> | 检查左边值是否大于右边值,如果是返回 True 否则返回 False。 |
>= | 检查左边值是否大于等于右边值,如果是返回 True 否则返回 False。 |
< | 检查左边值是否小于右边值,如果是返回 True 否则返回 False。 |
<= | 检查左边值是否小于等于右边值,如果是返回 True 否则返回 False。 |
实例
package main
import "fmt"
func main() {
a := 1
b := 2
//提示以下输出参考此 (a > b).print! 写法,会自动补全
fmt.Printf("(a > b): %v\n", (a > b))
fmt.Printf("(a < b): %v\n", (a < b))
fmt.Printf("(a == b): %v\n", (a == b))
fmt.Printf("(a >= b): %v\n", (a >= b))
fmt.Printf("(a <= b): %v\n", (a <= b))
fmt.Printf("(a != b): %v\n", (a != b))
}
输出结果
(a > b): false
(a < b): true
(a == b): false
(a >= b): false
(a <= b): true
(a != b): true
逻辑运算符
运算符 | 描述 |
---|---|
&& | 逻辑 AND 运算符。 如果两边的操作数都是 True,则为 True,否则为 False。 |
|| | 逻辑 OR 运算符。 如果两边的操作数有一个 True,则为 True,否则为 False。 |
! | 逻辑 NOT 运算符。 如果条件为 True,则为 False,否则为 True。 |
实例
package main
import "fmt"
func main() {
a := true
b := false
//提示以下输出参考此 (a && b).print! 写法,会自动补全
fmt.Printf("(a && b): %v\n", (a && b))
fmt.Printf("(a || b): %v\n", (a || b))
fmt.Printf("(!a): %v\n", (!a))
fmt.Printf("(!b): %v\n", (!b))
}
输出结果
(a && b): false
(a || b): true
(!a): false
(!b): true
位运算符
位运算符对整数在内存中的二进制位进行操作。
运算符 | 描述 |
---|---|
& | 参与运算的两数各对应的二进位相与。 (两位均为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 // 二进制 100
fmt.Printf("a: %b\n", a)
b := 8 // 二进制 1000
fmt.Printf("b: %b\n", b)
// 此处为了让大家更加清晰,分别做了二进制的转换(%b、%v)
fmt.Printf("(a & b): %v, %b \n", (a & b), (a & b))
fmt.Printf("(a | b): %v, %b\n", (a | b), (a | b))
fmt.Printf("(a ^ b): %v, %b\n", (a ^ b), (a ^ b))
fmt.Printf("(a << 2): %v, %b\n", (a << 2), (a << 2))
fmt.Printf("(b >> 2): %v, %b\n", (b >> 2), (b >> 2))
}
输出结果
a: 100
b: 1000
(a & b): 0
(a & b): 0
(a & b): 0, 0
(a | b): 12, 1100
(a ^ b): 12, 1100
(a << 2): 16, 10000
(b >> 2): 2, 10
赋值运算符
运算符 | 描述 |
---|---|
= | 简单的赋值运算符,将一个表达式的值赋给一个左值 |
+= | 相加后再赋值 |
-= | 相减后再赋值 |
*= | 相乘后再赋值 |
/= | 相除后再赋值 |
%= | 求余后再赋值 |
<<= | 左移后赋值 |
>>= | 右移后赋值 |
&= | 按位与后赋值 |
|= | 按位或后赋值 |
^= | 按位异或后赋值 |
实例
package main
import "fmt"
func main() {
var a int
a = 100
fmt.Printf("a: %v\n", a)
a += 1 // a = a + 1
fmt.Printf("a: %v\n", a)
a -= 1 // a = a -1
fmt.Printf("a: %v\n", a)
a *= 2 // a = a * 2
fmt.Printf("a: %v\n", a)
a /= 2 // a = a / 2
fmt.Printf("a: %v\n", a)
}
输出结果
a: 100
a: 101
a: 100
a: 200
a: 100
边栏推荐
- Pychart configuring jupyter
- OpenGL es: (5) basic concepts of OpenGL, the process of OpenGL es generating pictures on the screen, and OpenGL pipeline
- 【企业数据安全】升级备份策略 保障企业数据安全
- JMM详解
- linux 关闭redis 进程 systemd+
- 3D printer threading: five simple solutions
- Index method and random forest to realize the information of surface water body in wet season in Shandong Province
- 【ManageEngine卓豪 】助力世界顶尖音乐学院--茱莉亚学院,提升终端安全
- MongoDB:一、MongoDB是什么?MongoDB的优缺点
- 数据库er图组成要素
猜你喜欢
Database problems, how to optimize Oracle SQL query statements faster and more efficient
OpenGL es: (3) EGL, basic steps of EGL drawing, eglsurface, anativewindow
DHT11 温湿度传感器
PLA不粘贴在床上:6个简单的解决方案
Fixed height of the first column in El table dynamic header rendering
2022 年面向初学者的 10 大免费 3D 建模软件
相同区域 多源栅格数据 各个像元行列号一致,即行数列数相同,像元大小相同
Thesis learning record essay multi label lift
JDBC database operation
Infinite horizontal marble game
随机推荐
Pychart configuring jupyter
DHT11 温湿度传感器
浏览器端保存数据到本地文件
2022 年面向初学者的 10 大免费 3D 建模软件
PLA not pasted on the bed: 6 simple solutions
golang panic recover自定义异常处理
Smartinstantiationawarebeanpostprocessor of the extension point series determines which construction method to execute - Chapter 432
Save data in browser to local file
JMM详解
做技术,自信不可或缺
JDBC database operation
MySQL中 in 和 exists 的区别
3D printer threading: five simple solutions
【ITSM】什么是ITSM,IT部门为什么需要ITSM
Infinite horizontal marble game
SystemVerilog学习-06-类的封装
【ManageEngine卓豪】局域网监控的作用
Servlet
Differences between in and exists in MySQL
Projects and dependencies in ABP learning solutions