16 Go 算术/关系/逻辑/位/赋值运算符
1 Golang算术运算符
注意点:
1)如果参与运算的都是整型,那么结果也是整型。如果希望保留小数,则需要浮点型参与运算;
2)%运算符,a%b 等价于 a-a/b*b,通过后者能计算出有符号数字参与%运算符后,得到结果的符号;
3)自增++和自减--在Go语言中是单独的语句,并不是运算符,不能参与表达式,也不能参与其他运算。且只有后自增(a++)和后自减(a--),没有前自增和前自减;
1 package main 2 3 import "fmt" 4 5 func main() { 6 fmt.Println("整数除运算,结果只会是整数,余数会被省略截断") 7 fmt.Println(10/3) // 3 8 fmt.Println(10.0/3) // 3.3333333333333335 9 10 fmt.Println("") 11 fmt.Println("取余运算符的结果的符号问题") 12 fmt.Println(10%3) // 1 13 fmt.Println(-10%3) // -1,等价于:-10-(-10/3*3)=-1 14 fmt.Println(-10%-3) // -1,等价于:-10-(-10/-3*-3)=-1 15 fmt.Println(10%-3) // 1,等价于:10-(10/-3*-3)=1 16 17 fmt.Println("") 18 fmt.Println("自增自减问题") 19 num := 10 20 // fmt.Println(num++) // syntax error: unexpected ++, expecting comma or ) 21 // --num // syntax error: unexpected --, expecting } 22 num++ // 自增自减只能独占一行,不能参与运算也不能参与表达式,也没有++num 23 fmt.Println(num) // 11 24 }
习题:
1 假如还有97天放假,请问还有几个星期零几天?
// 1 假如还有97天放假,请问还有几个星期零几天? fmt.Printf("还有 %v 个星期零 %v 天放假。", 97/7, 97%7) // 还有 13 个星期零 6 天放假。
2 已知摄氏温度=5/9*(华氏温度-100),设计开发一个输入华氏温度计算摄氏温度的程序
fmt.Println("请输入需要换算的华氏温度度数值:") var fTemp float64 fmt.Scan(&fTemp) var cTemp float64 = 5.0/9*(fTemp - 100) fmt.Printf("华氏温度 %v 等于摄氏温度 %v", fTemp, cTemp)
2 关系运算符
关系运算符同其他语言运算符,不再赘述
3 逻辑运算符
逻辑运算符同其他语言运算符,也存在短路现象,如下:
&&运算符,左侧为flase时,就不再执行右侧表达式,因为&&运算的结果已经确定为false
||运算符,左侧为true时,就不再执行右侧表达式,因为||运算的结果已经确定为true
4 位运算符
位运算符对整数在内存中的二进制位进行操作,同JAVA的位运算符
晚些再补充例子
5 赋值运算符
注意点:
1 赋值运算符的运算顺序从右向左
2 赋值运算的左边只能是变量,右边可以是变量、表达式、常量
3 复合赋值运算符等价于下面的效果
a +=3 等价于 a = a + 3
6 其他运算符
7 三元运算符
特别强调,Gollang语言没有三元运算符!
原因如下:
Frequently Asked Questions (FAQ) - The Go Programming Language
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具