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

go运算符

内置运算符

  • 算术运算符
  • 关系运算符
  • 逻辑运算符
  • 位运算符
  • 赋值运算符

算术运算符

在这里插入图片描述

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

package main

import "fmt"

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

++ --正确写法:

package main

import "fmt"

func main() {
	var i int = 1
	i++
	fmt.Println("i=", i) // 2
}

关系运算符

在这里插入图片描述

package main

import "fmt"

func main() {
	//演示关系运算符的使用
	var n1 int = 9
	var n2 int = 8
	fmt.Println(n1 == n2) //false
	fmt.Println(n1 != n2) //true
	fmt.Println(n1 > n2)  //true
	fmt.Println(n1 >= n2) //true
	fmt.Println(n1 < n2)  //flase
	fmt.Println(n1 <= n2) //flase
	flag := n1 > n2
	fmt.Println("flag=", flag)
}

逻辑运算符

在这里插入图片描述

package main

import "fmt"

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

赋值运算符

在这里插入图片描述

package main

import "fmt"

func main() {
	d := 8 + 2*8 // 赋值运算从右向左
	fmt.Println(d) // 24
	x := 10
	x += 5 //x=x+5
	fmt.Println("x += 5 的值:", x) // 15
	y := 10
	y -= 5 //y=y-5
	fmt.Println("y -= 5 的值:", y) // 5
	a := 10
	a *= 5 //a=a*5
	fmt.Println("a *= 5 的值:", a) // 50
	b := 10.0
	b /= 5
	fmt.Println("b /= 5 的值:", b) // 2
	c := 10
	c %= 3
	fmt.Println("c %= 3 的值:", c) // 1
}

位运算符

位运算符对整数在内存中的二进制位进行操作。
在这里插入图片描述

package main

import "fmt"

func main() {
	/*
		& 两位均为 1 才为 1
		| 两位有一个为 1 就为
		^ 相异或 两位不一样则为 1
		<< 左移 n 位就是乘以 2 的 n 次方。 “a<<b”是把 a 的各二进位全部左移 b 位,
		高位丢弃,低位补 0。
		>> 右移 n 位就是除以 2 的 n 次方。
	*/
	var a int = 5              // 101
	var b int = 2              // 010
	fmt.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) // 5 右移 2 位 1
	fmt.Println("5<<2=", a<<b) // 5 左移 2 位 10100
	fmt.Println("5<<1=", 5<<1) // 1010
	fmt.Println("5>>1=", 5>>1) // 10
	fmt.Println("7>>2=", 7>>2) // 1
}

参考文献

https://go.dev/doc/tutorial/getting-started

https://gobyexample.com/

https://www.w3schools.com/go/

https://go.dev/doc/tutorial/

https://www.geeksforgeeks.org/golang-tutorial-learn-go-programming-language/


http://www.kler.cn/a/533494.html

相关文章:

  • 离散时间傅里叶变换(DTFT)公式详解:周期性与连续性剖析
  • 51单片机看门狗系统
  • UE求职Demo开发日志#21 背包-仓库-装备栏移动物品
  • JavaScript系列(57)--工程化实践详解
  • 结构体和类
  • react-bn-面试
  • Redis缓存穿透、击穿、雪崩介绍以及解决方案
  • vscode 设置在编辑器的标签页超出可视范围时自动换行(workbench.editor.wrapTabs)
  • SpringBoot 基于个性化定制的智慧校园管理系统设计与开发 - 论文、开题报告
  • 搭建Python环境:为量化交易做准备
  • Linux之安装MySQL
  • Oh3.2项目升级到Oh5.0(鸿蒙Next)具体踩坑记录二
  • 正则表达式详细介绍
  • 题解:洛谷 P1744 采购特价商品
  • 算法随笔_39: 最多能完成排序的块_方法2
  • embeddingbag词袋
  • 协议的种类
  • RNN/LSTM/GRU 学习笔记
  • java进阶知识点
  • 软件测试丨PyTorch 图像目标检测
  • CSS的媒体查询语法
  • Zabbix7.0安装(Ubuntu24.04+LNMP)
  • ES面试题
  • 【学Rust写CAD】4 相对坐标系详解与实现要素概览
  • YOLOv11-ultralytics-8.3.67部分代码阅读笔记-autobackend.py
  • WebSocket协议里客户端发送给服务器的数据会用4字节的掩码循环异或的分析