5、运算符

1.算数运算符

和数学中固定运算符差不过

+ - * / % ++ --

注意:Go预言中不允许 ++i --i 这种写法并且i++ i-- 不允许参与运算

/*
	算术运算符:+,-,*,/,%,++,--
*/
var a, b = 10, 3
sum := a + b
fmt.Printf("a + b=%d \n", sum)

sub := a - b
fmt.Printf("a - b=%d \n", sub)

mul := a * b
fmt.Printf("a * b=%d \n", mul)

div := a / b
fmt.Printf("a / b=%d \n", div)

mod := a % b
fmt.Printf("a %% b=%d \n", mod)

c := 10
c++
fmt.Printf("c++ = %d", c)
c--
fmt.Printf("c-- = %d", c)

// 注意 ++ -- 不能参与运算;例如下面错误写法
// d := c--
	// e := c++

image

2.关系运算符

> < >= <= == != 值得注意的是,关系运算符的结果都是bool类型的

/*
	关系运算符:>,<,>=,<=,==,!=
*/
n1, n2 := 10, 20
gt := n1 > n2
lt := n1 < n2
ge := n1 >= n2
le := n1 <= n2
eq := n1 == n2
ne := n1 != n2

fmt.Printf("n1 > n2 ? %t \n", gt)
fmt.Printf("n1 < n2 ? %t \n", lt)
fmt.Printf("n1 >= n2 ? %t \n", ge)
fmt.Printf("n1 <= n2 ? %t \n", le)
fmt.Printf("n1 == n2 ? %t \n", eq)
fmt.Printf("n1 != n2 ? %t \n", ne)

image

3.逻辑运算符

逻辑运算符: 操作数必须是bool,运算结果也是bool
逻辑与:&&

  • 运算规则:所有的操作数都是真,结果才为真,有一个为假,结果就为假“一假则假,全真才真”

逻辑或:||

  • 运算规则;偶有的操作数都是假,结果才为假,有一个为真,结果就为真"一真则真,全假才假”

逻辑非:!

  • !T->false
  • !F->true
/*
	逻辑运算符: && || !
*/
f1, f2, f3 := true, false, true
res1 := f1 && f2
fmt.Printf("res1: %t \n", res1)

res2 := f1 || f2
fmt.Printf("res2: %t \n", res2)

res3 := !f3
fmt.Printf("res3: %t \n", res3)

x, y, z := 10, 20, 30

res4 := (x > y && z%x == y) || y < (z/a)
fmt.Printf("res4: %t \n", res4)

res5 := x*2 < z || z/x < y
fmt.Printf("res5: %t \n", res5)

image

4.位运算符

位运算符
	按位&:
		对应位的值如果都为1才为1,有一个为0就为0
	按位|:
		对应位的值如果都是0才为0,有一个为1就为1
	异或^:
		二元:a^b
			对应位的值不同为1,相同为0
		一元:^a
			按位取反:
				1 ---> 0
				0 ---> 1
	位清空:&^
		a&^b
			对于b上的每一个值
			如果为0,则取a对应位上的数值
			如果为1,则结果就取0

image
image

5.赋值运算符

image

运算符的优先级
image

posted @   我也有梦想呀  阅读(14)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
历史上的今天:
2022-03-26 SpringCloudAlibaba-OSS文件上传
点击右上角即可分享
微信分享提示