目录
一个程序的最小单位是一条语句,一条语句最少包含一条指令,而指令就是对数据做运算,比如fmt.Println(1+1)
这条语句包含两个指令,首先是计算1+1的指令,1就是数据,+就是算术运算符中的相加,这样计算机就可以帮我们执行这个指令计算出结果,然后执行第二个指令,即将计算结果2打印在终端,最终完成这条语句。
1. 算数运算符
1.1 常用算数运算符
运算符 描述
+ 相加
- 相减
* 相乘
/ 相除
% 求余
1.2 使用实例
package main
import (
"fmt"
"reflect"
"strconv"
)
func main() {
x := 10
y := 23
fmt.Println(x > y) //比较运算符 返回值都为bool类型
fmt.Println(x < y)
fmt.Println(x == y)
fmt.Println(x != y)
fmt.Println(x <= y)
fmt.Println(x >= y)
}
2. 关系运算符
- Go语言对于值之间的比较有非常严格的限制,只有两个相同类型的值才可以进行比较,如果值的类型是接口(interface),那么它们也必须都实现了相同的接口。如果其中一个值是常量,那么另外一个值可以不是常量,但是类型必须和该常量类型相同。如果以上条件都不满足,则必须将其中一个值的类型转换为和另外一个值的类型相同之后才可以进行比较。
运算符 描述
== 检查两个值是否相等,如果相等返回 True 否则返回 False。
!= 检查两个值是否不相等,如果不相等返回 True 否则返回 False。
> 检查左边值是否大于右边值,如果是返回 True 否则返回 False。
< 检查左边值是否小于右边值,如果是返回 True 否则返回 False。
>= 检查左边值是否大于等于右边值,如果是返回 True 否则返回 False。
<= 检查左边值是否小于等于右边值,如果是返回 True 否则返回 False。
3. 逻辑运算符
运算符 描述
&& 逻辑 AND 运算符。 如果两边的操作数都是 True,则条件 True,否则为 False。
|| 逻辑 OR 运算符。 如果两边的操作数有一个 True,则条件 True,否则为 False。
! 逻辑 NOT 运算符。 如果条件为 True,则逻辑 NOT 条件 False,否则为 True。
package main
import (
"fmt"
"reflect"
"strconv"
)
func main() {
fmt.Println(true && true) // &&与 左右两边的结果都为真 最终结果为真
fmt.Println(true && !false)
fmt.Println(0 == 0 && 1 == 1)
fmt.Println(1 == 1 && 1 == 0) // ||或 左右两边的结果一方为真 最终结果为真
fmt.Println(1 == 1 || 1 == 0)
fmt.Println(0 == 1 || 2 == 1)
fmt.Println(false || !false) // !非 取反
}
4. 赋值运算符
运算符 描述
= 简单的赋值运算符,将一个表达式的值赋给一个左值
+= 相加后再赋值
-= 相减后再赋值
*= 相乘后再赋值
/= 相除后再赋值
%= 求余后再赋值
<<= 左移后赋值
>>= 右移后赋值
&= 按位与后赋值
^= 按位异或后赋值
\|= 按位或后赋值
`++` `自增`
`--` `自减`
package main
import (
"fmt"
)
func main() {
//赋值运算符
var x = 1
x += 1 //+= 自加符
fmt.Println(x) // 2
x -= 1 //-= 自减符
fmt.Println(x) // 1
x *= 5 //*= 自乘符
fmt.Println(x) // 5
x /= 1 //*= 自除符 取商
fmt.Println(x) // 5
x *= 5 //*= 自除符 取余
fmt.Println(x) //25
x++ //一次加一
fmt.Println(x) //26
x-- //一次减一
fmt.Println(x) //25
}