当前位置: 首页 > news >正文

Go 语言中的内置运算符

1. 算术运算符

注意: ++(自增)和--(自减)在 Go 语言中是单独的语句,并不是运算符。

package mainimport "fmt"func main() {fmt.Println("10+3=", 10+3)      // 13fmt.Println("10-3=", 10-3)      // 7fmt.Println("10*3=", 10*3)      // 30// 除法注意:如果运算的数都是整数,那么除后,去掉小数部分,保留整数部分fmt.Println("10/3=", 10/3)      // 3fmt.Println("10.0/3=", 10.0/3)  // 3.3333333333333335// 取余注意 余数=被除数-(被除数/除数)*除数fmt.Println("10%3=", 10%3)      // 1fmt.Println("-10%3=", -10%3)    // -1fmt.Println("10%-3=", 10%-3)    // 1fmt.Println("-10%-3=", -10%-3)  // -1}

注意:在 golang 中,++ -- 只能独立使用,错误写法如下:

var i int = 8
var a int
a = i++  //错误,i++只能独立使用
a = i--  //错误, i--只能独立使用

注意:golang 中没有前++ 和前--,错误写法如下:

var i int = 1
++i // 错误,在 golang 没有 前++
--i // 错误,在 golang 没有 前--
fmt.Println("i=", i)

2. 关系运算符

示例代码如下:

package main
import "fmt"func main() {var a1 = 9var a2 = 8fmt.Println(a1 == a2) // falsefmt.Println(a1 != a2) // truefmt.Println(a1 >  a2) // truefmt.Println(a1 >= a2) // truefmt.Println(a1 <  a2) // flasefmt.Println(a1 <= a2) // flaseflag := a1 > a2fmt.Println("flag=", flag) // flag=truevar a3 = 9var a4 = 14flag := a3 > a4if flag {fmt.Println("a3>a4")  // a3>a4}var a5 = 9var a6 = 8if a5 == a6 {fmt.Println("a4=a6") } else {fmt.Println("a5!=a6") // a5!=a6}}

3. 逻辑运算符


package main
import ("fmt")
func main() {var age int = 40// 演示逻辑运算符的使用 &&if age > 30 && age < 50 {fmt.Println("ok1") // ok1}if age > 30 && age < 40 {fmt.Println("ok2")}// 演示逻辑运算符的使用 ||if age > 30 || age < 50 {fmt.Println("ok3") // ok3}if age > 30 || age < 40 {fmt.Println("ok4") // ok4}// 演示逻辑运算符的使用 !if age > 30 {fmt.Println("ok5") // ok5}if !(age > 30) {fmt.Println("ok6")}
}

逻辑运算符短路演示:

package main
import ( "fmt")
func test() bool {fmt.Println("test...")return true
}
func main() {var i int = 10if i < 9 && test() {fmt.Println("ok...")}if i > 9 || test() {fmt.Println("hello...")}
}

4. 赋值运算符


package main
import "fmt"
func main() {var a = 10a += 3 fmt.Println(a) // 13var b = 10b -= 3 fmt.Println(b) // 7var c = 10c *= 3 fmt.Println(c) // 30var d = 10d /= 3        fmt.Println(d) // 3var e float64 = 10e /= 3        fmt.Println(e) // 3.3333333333333335var f = 10f %= 3        fmt.Println(f) // 1}

5. 位运算符

位运算符对整数在内存中的二进制位进行操作。

package mainimport "fmt"func main() {var a int = 5 // 101var b int = 2 // 010fmt.Println("a&b=", a&b)   // 000 (值 0)fmt.Println("a|b=", a|b)   // 111 (值 7)fmt.Println("a^b=", a^b)   // 111 (值 7)fmt.Println("5>>2=", a>>b) // 1  (5右移2位)fmt.Println("5>>1=", 5>>1) // 10 (5右移1位)fmt.Println("7>>2=", 7>>2) // 1  (7右移1位)fmt.Println("5<<2=", a<<b) // 10100 (5左移2位)fmt.Println("5<<1=", 5<<1) // 1010  (5左移1位)}

6. 运算符练习

1. 练习:有两个变量a和b,要求将其进行交换,最终打印结果。

package main
import "fmt"
func main() {var a = 34var b = 10t := a // t=34a = b  // a=10b = t  // b=34fmt.Printf("a=%v b=%v", a, b)}

2. 练习:有两个变量a和b,要求将其进行交换,不能使用中间变量,最终打印结果。

package main
import "fmt"
func main() {var a = 34var b = 10a = a + b // a=34+10 =>44b = a - b // b=34+10-10=>34a = a - b // a=(34+10)-(34+10-10)=>10fmt.Printf("a=%v b=%v", a, b)}

3. 练习:假如还有100天放假,问:多少个星期零多少天。

package main
import "fmt"
func main() {var days = 100var week = days / 7var day = days % 7fmt.Printf("距离放假还有%v周零%v天", week, day)}

4. 练习:定义一个变量保存华氏温度,请求出华氏温度对应的摄氏温度。

华氏温度转换摄氏温度的公式为:C=(F-32)÷1.8,摄氏温标(°C)和华氏温标(°F)

package main
import "fmt"
func main() {var F float32 = 100 // 华氏温度C := (F - 32) / 1.8fmt.Printf("华氏温度对应的摄氏温度是%.2f", C)
}

相关文章:

  • vue中Echarts的使用
  • VSCode主题设计大赛
  • LeetCode 1723: 完成所有工作的最短时间
  • OpenEuler 系统中 WordPress 部署深度指南
  • Fork/Join框架:CountedCompleter与RecursiveTask深度对比
  • C语言 — 通讯录模拟实现
  • 135. 分发糖果
  • 2.1.1 通信基础的基本概念
  • F(x,y)= 0 隐函数 微分法
  • sizeof 与strlen的区别
  • 基于规则的自然语言处理
  • 进程与线程的区别
  • 5-C#的DateTime使用
  • 2025.6.8
  • java 时区时间转为UTC
  • 一种停车场自动停车导航器的设计(论文+源码)
  • 31.2linux中Regmap的API驱动icm20608实验(编程)_csdn
  • 【存储基础】对象存储基础知识
  • 动态生成 PV 的机制:使用 NFS-Client Provisione
  • Python训练打卡Day43
  • 微信机器人网站开发/网络营销的整体概念
  • 哪些网站可以做招商广告语/外链交易平台
  • 百能网是哪家公司做的网站/近期10大新闻事件
  • 北京网站建设石榴汇/seo关键词怎么填
  • 网站建设个体营业执照/中国网民博客 seo
  • 网站外链哪里做/一般的电脑培训班要多少钱