Go语言学习笔记——(四)运算符

go语言学习笔记 — 基础 — 基本语法 — 运算符:go中的运算符 算术运算符 下表列出了所有Go语言的算术运算符。假定A值为10,B值为20。 运算符 描述 实例 + 相加 A + B 输出结果 30 - 相减 A - B 输出结果 -10 * 相乘 A * B 输出结果 200 / 相除 B / A 输出结果 2 % 求余 B % A 输出结果 0 ++ 自增 A++ 输出结果 11 – 自减 A-- 输出结果 9 package main import "fmt" var a int = 21 var b int = 1 阅读详情

目录

一、运算符

1、算数运算符

2、赋值运算符

3、关系运算符

4、逻辑运算符

5、位运算符

6、其他运算符

7、运算符优先级


一、运算符

1、算数运算符

func main() {
	// +号
	// 1、表正数 2、相加 3、字符串拼接
	var n1 int = +1
	fmt.Println(n1)
	var n2 int = 2 + 1
	fmt.Println(n2)
	var n3 string = "aer" + "opi"
	fmt.Println(n3)

	// -号 相减
	var n4 = 10 - 5
	fmt.Println(n4)
	
	// /号
	// int类型相除,结果为int型
	var n5 = 10 / 2
	fmt.Printf("n5对应的类型是: %T, n5 = %v \n", n5, n5)
	// 浮点类型参与运算,结果为浮点型
	var n6 = 10.2 / 3
	fmt.Printf("n6对应的类型是: %T, n6 = %v \n", n6, n6)

	// %取模,等价公式:a%b = a-a/b*b
	fmt.Println(10%3)
	fmt.Println(-10%3)

	// ++自增 --自减
	// 需要注意的是,Go中自增自减只能在变量后面,++n --n这种写法都是错误的
	// 自增自减只能单独使用,不能参与到运算中
	var n7 = 10
	fmt.Printf("n7自增前的值是:%v \n", n7)
	n7++
	fmt.Printf("n7自增后的值是:%v \n", n7)
}

运行结果:

 

2、赋值运算符

func main() {
	var a int = 21
	var c int
 
	// 将=右边的值赋给左边值
	c =  a
	fmt.Printf("=  运算符实例,c 值为 = %d\n", c )
	// 相加后再赋值 c = c + a
	c +=  a
	fmt.Printf("+= 运算符实例,c 值为 = %d\n", c )
	// 相减后再赋值 c = c - a
	c -=  a
	fmt.Printf("-= 运算符实例,c 值为 = %d\n", c )
	// 相乘后再赋值 c = c * a
	c *=  a
	fmt.Printf("*= 运算符实例,c 值为 = %d\n", c )
	// 相除后再赋值 c = c / a
	c /=  a
	fmt.Printf("/= 运算符实例,c 值为 = %d\n", c )

	c  = 200;
	// 左移后赋值  c = c << 2
	c <<=  2
	fmt.Printf("<<= 运算符实例,c 值为 = %d\n", c )
	// 右移后赋值 c = c >> 2
	c >>=  2
	fmt.Printf(">>= 运算符实例,c 值为 = %d\n", c )
	// 按位与后赋值 c = c & 2
	c &=  2
	fmt.Printf("&= 运算符实例,c 值为 = %d\n", c )
	// 按位异或后赋值 c = c ^ 2
	c ^=  2
	fmt.Printf("^= 运算符实例,c 值为 = %d\n", c )
	// 按位或后赋值 c = c | 2
	c |=  2
	fmt.Printf("|= 运算符实例,c 值为 = %d\n", c )
}

运行结果:

3、关系运算符

关系运算符的结果都是bool型

关系运算符经常用在流程控制中

func main() {
	var a int = 21
	var b int = 20
	fmt.Printf("a值为:%v b值为:%v\n", a, b )
	// 检查两个值是否相等,如果相等返回 True 否则返回 False
	fmt.Printf("==  运算符实例,a == b值为 = %v\n", a==b )
	// 检查两个值是否不相等,如果不相等返回 True 否则返回 False。
	fmt.Printf("!= 运算符实例,a != b值为 = %v\n", a != b )
	// 检查左边值是否大于右边值,如果是返回 True 否则返回 False。
	fmt.Printf("> 运算符实例,a > b值为 = %v\n", a > b )
	// 检查左边值是否小于右边值,如果是返回 True 否则返回 False。
	fmt.Printf("< 运算符实例,a < b值为 = %v\n", a < b )
	// 检查左边值是否大于等于右边值,如果是返回 True 否则返回 False。
	fmt.Printf(">= 运算符实例,a >= b值为 = %v\n", a >= b )
	// 检查左边值是否小于等于右边值,如果是返回 True 否则返回 False。
	fmt.Printf("<= 运算符实例,a <= b值为 = %v\n", a <= b )
}

运行结果:

 

4、逻辑运算符

逻辑运算
AB与AND或OR非NOT(A)异或XOR与或NAND
0000101
0101111
1001011
1111000

func main() {
	// && 逻辑与运算
	// 短路与,只要第一个值/表达式为false,则后面表达式不用运算,结果就是false
	fmt.Printf("-----&& 逻辑与运算-----\n")
	fmt.Printf(" true && true值为 = %v\n", true&&true )
	fmt.Printf(" true && false值为 = %v\n", true&&false )
	fmt.Printf(" false && true值为 = %v\n", false&&true )
	fmt.Printf(" false && false值为 = %v\n", false&&false )

	// || 逻辑或运算
	// 短路或,只要第一个值/表达式为true,则后面表达式不用运算,结果就是true
	fmt.Printf("-----|| 逻辑或运算-----\n")
	fmt.Printf(" true || true值为 = %v\n", true||true )
	fmt.Printf(" true || false值为 = %v\n", true&&false )
	fmt.Printf(" false || true值为 = %v\n", false||true )
	fmt.Printf(" false || false值为 = %v\n", false||false )

	// ! 逻辑非运算
	fmt.Printf("-----! 逻辑非运算-----\n")
	fmt.Printf(" !true值为 = %v\n", !true )
	fmt.Printf(" !false值为 = %v\n", !false )
}

运算结果:

5、位运算符

func main() {
	// 60 = 0011 1100
	var a uint = 60
	// 13 = 0000 1101
	var b uint = 13 
	var c uint = 0          
 
	// 双目运算符,按位与运算符"&"。 其功能是参与运算的两数各对应的二进位相与
	// 12 = 0000 1100
	c = a & b
	fmt.Printf("a & b 时 c 的十进制值为:%d, 二进制值为:%b\n", c, c )
 
	// 双目运算符,按位或运算符"|"。 其功能是参与运算的两数各对应的二进位相或
	// 61 = 0011 1101
	c = a | b
	fmt.Printf("a | b 时 c 的十进制值为:%d, 二进制值为:%b\n", c, c )
 
	// 双目运算符,按位异或运算符"^"。 其功能是参与运算的两数各对应的二进位相异或,当两对应的二进位相异时,结果为1
	// 49 = 0011 0001
	c = a ^ b
	fmt.Printf("a ^ b 时 c 的十进制值为:%d, 二进制值为:%b\n", c, c )
 
	// 	双目运算符,左移运算符"<<"。左移n位就是乘以2的n次方。 其功能把"<<"左边的运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0。
	// 240 = 1111 0000
	c = a << 2
	fmt.Printf("a << 2 时 c 的十进制值为:%d, 二进制值为:%b\n", c, c )
 
	// 双目运算符,右移运算符">>"。右移n位就是除以2的n次方。 其功能是把">>"左边的运算数的各二进位全部右移若干位,">>"右边的数指定移动的位数。
	// 15 = 0000 1111
	c = a >> 2
	fmt.Printf("a >> 2 时 c 的十进制值为:%d, 二进制值为:%b\n", c, c )
}

运行结果:

6、其他运算符

func main() {
	// 定义变量
	// & 返回变量存储地址
	var a int = 60
	fmt.Println("a的值为:", a)
	fmt.Println("a对应的存储空间的地址为:", &a)

	// * 取指针指向的值
	var ptr *int = &a
	fmt.Println("指针ptr的值为:", ptr)
	fmt.Println("指针ptr指向的具体数值为:", *ptr)      
}

运行结果:

7、运算符优先级

优先级运算符
5* / % << >> & &^
4+ - | ^
3== != < <= > >=
2&&
1||

二元运算符的运算方向均是从左至右,表中运算符优先级由上至下代表优先级由高到低

可以通过()提高优先级

电子技术——共栅和共源共栅放大器的高频响应 我们在之前学过无论是是CS放大器还是CE放大器,都可以看做是一个带通(IC低通)滤波器。在高频处的响应收到输入电容 $C_{in}$ 的限制(主要是米勒效应)。因此,若想扩大放大器的带宽,我们必须减小米勒效应,一种方案就是共栅放大器。 阅读详情

相关推荐

TSP、MTSP问题遗传算法详细解读及python实现

写在前面 遗传算法是一种求解NPC问题的启发式算法,属于仿生进化算法族的一员。仿生进化算法是受生物行为启发而发明的智能优化算法,往往是人们发现某种生物的个体虽然行为较为简单,但生物集群通过某种原理却能表现出智能行为。于是不同的人研究不同的生物行为原理,受到启发而发明出新的仿生进化算法。比如免疫优化算法,蚁群算法,模拟退火算法等,这些算法以后也会简单介绍。 本文的主题是遗传算法,该算法也是受到生物行为启发。物竞天择,适者生存,优胜劣汰,是该优化算法的核心思想。笔者在业务中需要用到遗传算法求解TSP问题,但是网

weixin_47675950的博客 9306

Go语言运算符

运算符用在程序运行时执行数学逻辑运算。

田螺姑娘的博客 643

Office如何通过VSTO进行WORD插件开发?

VSTO(Visual Studio Tools for Office )是VBA的替代,是一套用于创建自定义Office应用程序的Visual Studio工具包。VSTO可以用Visual Basic 或者Visual C#扩展Office应用程序(例如Word、Excel、PPT)。本文通过VSTO进行Word插件开发总结,并进行记录。

【cacrle】的博客 7322

go语言-运算符

/|| -->逻辑或运算,两边有一个是true,则为true,否则为flase(左边为true结果为true,不判断右边,左边为flase,再判断右边)例子:10%3=1 -10%3=-1-->(-10-(-10)/3*3=-10-(-9)=-1) 10%-3=1 -10%-3=-1。六、赋值运算符:=、+=、-=、*=、/=、%=、(=、&=、^=、!//b = a-b //30-20=10---a的值。//a = a-b //30-10=20---b的值。

468

二手分析仪器改造实战:如何用PMT搭建荧光检测电路(附完整电路图)

本文详细介绍了如何利用二手分析仪器中的光电倍增管(PMT)核心部件,进行荧光检测电路的实战改造。内容涵盖从PMT工作原理理解、高压供电电路设计、低噪声前置放大(跨阻放大器)到信号调理的完整流程,并提供了关键电路图与调试排错指南,旨在帮助电子爱好者与工程师低成本构建稳定、高灵敏度的专业检测系统。

weixin_29234239的博客 441

Vue3 - 完美解决html2canvas截图不全问题,截图只截取当前可视区域导出图片不全,截屏导出的图片显示不全只有一部分或缺一块,vue3移动端H5网页项目使用html2canvas插件长截图!

vue3,html2canvas,移动端H5网页,截图不全,html2canvas长截图不全,保存长截图,页面滚动导致截图不全,网页下方截屏不到怎么办,底部一部分无法截屏到,保存的图片少了一大块,H5海报截图不完整,怎么截取滚动条下方的内容,截图图时图片不全,截图图片只有一半的问题,底部内容空白,截图空白问题的解决,截图不全怎么办,html2canvas.js网页截图功能(解决截图不全问题,移动端ios系统截图不完整,html2canvas截图太长又不能删减截取不到,使用HTML2Canvas在H5页面上实

🏆 前端领域优质创作者 1万+

Go语言基础---运算符

Go语言的运算符优先级遵循了大多数编程语言中广泛接受的规则,但与某些语言(如C或Java)相比,Go的运算符集和关键字可能有所不同,但优先级的基本概念是相似的。Go语言还支持一系列的复合赋值运算符,这些运算符结合了赋值和算术操作(如加、减、乘、除)或位操作(如按位与、按位或、按位异或)。尽管Go语言的赋值运算符相对简单,但它支持多种赋值方式,包括基本的赋值、多重赋值(也称为并行赋值)、以及复合赋值运算符。通道(channel)是Go语言中的一个核心类型,用于在不同的goroutine之间安全地传递值。

qq_59634082的博客 1552

学Simulink——基于风力发电系统的建模与仿真场景:基于自适应控制的风力发电系统输出功率调节

本文详细介绍了使用Simulink搭建风力发电系统自适应控制模型的完整流程。首先阐述了风速波动对电网的影响及自适应控制的优势,然后逐步指导创建Simulink项目、搭建系统结构(包括风速源、风轮机、发电机等模块),重点讲解了模型参考自适应控制器(MRAC)的设计步骤和参数设置方法。通过仿真分析验证了系统在风速变化时仍能保持输出功率稳定,展示了自适应控制的响应速度和鲁棒性。最后提出了引入深度学习预测、多变量控制等优化方向,为新能源领域工程师提供了实用的建模与仿真指导。

amy_mhd的博客 220

2024年最全Go-运算符总结(算术、关系、逻辑、赋值、位运算符等

注意:对于&&运算符,左边的为false,右边的就不运行。对于||运算符,左边的为true,右边的就不运行。注意:/有浮点型参与运算时会保留小数,10.0/4 结果为2.5;,不能赋值给其他变量。

2401_84266286的博客 803

YOLO26全网首发:CVPR2026 FAA| 解决YOLO Neck跨尺度方向冲突--- FAAFusion频域对齐融合模块 | 暴力涨点篇

本文改进:FAAFusion引入YOLO neck ,代替nn.Upsample和Concat

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 644

PyCharm配置SSH和SFTP远程连接服务器

关于这篇博文,主要因为公司企业都是通过本地测试,同步到服务器进行跑动,舍友看着同事丝滑的操作,让我做个教程。本着钻研的精神,写下了这篇博客记录 关于pycharm这个软件,只有专业版才有远程连接的这个配置,社区版没有(同事一再强调要专业版,学生认证还可申请免费) 关于SSH和SFTP都是一种协议 具体知识点补充可看我这篇文章: 【计算机网络】常见面试题集锦(全) SSH:提供安全通道进行远程登录 SFTP协议可以远程文件传输获取等,数据的安全传输主要由SSH连接提供

码农研究僧的博客 5538

Go---运算符

运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等 1.算术运算符 2.赋值运算符 3.比较运算符 4.逻辑运算苻 5.位运算符 6.其它运算符 算术运算符 算术运算符是对数值类型的变量进行运算的,比如:加减乖除。 练习 //如果运算的数都是整数,那么除后,去掉小数部分,保留整数部分 fmt.Println(10 / 4)//---->2 var num1 float64 = 10 / 4 fmt.Println(num1)//----&gt...

weixin_47328424的博客 662

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Go语言学习笔记四: 运算符

Go语言学习笔记四: 运算符 这章知识好无聊呀,本来想跨过去,但没准有初学者要学,还是写写吧。 运算符种类 与你预期的一样,Go的特点就是啥都有,爱用哪个用哪个,所以市面上的运算符基本都有。 1. 算术运算符 1. 关系运算符 1. 逻辑运算符 1. 位运算符 1. 赋值运算符 1. 其他运算符 算术运算符 包括:+,-, *,/, %, ++, --。 a :...

kriszhang的博客 339

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

基于MP2642与STM32的两串锂电池主动均衡BMS设计实战

锂电池串联成组后,因单体差异导致木桶效应,均衡电路成为BMS核心。主动均衡通过电感式DC-DC实现能量转移,效率高、发热小,尤其适合备用电源等长周期场景。MP2642GR-Z作为专用双向均衡控制器,配合STM32F745VG主控,可构建高性价比两串主动均衡方案。该方案涵盖硬件选型、电感与MOSFET计算、电压采集滤波、均衡阈值设定及状态机设计,并解决开关噪声耦合、I2C通信故障等工程难题。适用于通信基站、小型UPS等两串电池BMS开发,有效延长电池组寿命。

weixin_34082695的博客 141

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Go语言学习笔记—golang基础语法

golang基础语法

qq_39280718的博客 3278

【Lin的Golang学习笔记】运算符

叠甲环节!我本人也是个新手。本文只是针对自己在学习Go语言时的知识点进行整理。目的是想提高自己总结和归纳的能力。有些地方可能存在表述不当或者错误。非常希望有大佬看到错误后及时指正!如果内容有遗漏,也欢迎大佬进行补充!本文主要介绍了Go语言的运算符,内容其实并不复杂,对于有其他编程语言基础的人来说,基本上这里就是一笔带过,不过有一些技巧还是要掌握的,像位运算的小技巧,看完还算是有收获的吧!ok啊,到这里,本篇文章也就结束了,内容有错误和遗漏还请见谅。

weixin_61821843的博客 1117

go语言基础语法,go语言学习超详细笔记

类型常用符号算术+ - * / %比较==!逻辑`&&赋值位运算`&其他++ --(只能单独使用)import fmtvar nums [10]int/'初始化数组,默认元素都为0'//'如果数组长度不确定,可以使用 ... 代替数组的长度,编译器会根据元素个数自行推断数组的长度:'//'如果设置了数组的长度,我们还可以通过指定下标来初始化元素:'/// 将索引为 1 和 3 的元素初始化/'将50.0赋值为balance[4]'//'访问'/// Step 1: 创建数组。

2503_91344087的博客 779

GoLang学习笔记

本文全篇都是GoLang的学习笔记,主要从GoLang产生的背景、特性开始,将go语言学习划分成基础、进阶两个部分展开。主要针对有编程经验的开发人员食用更佳,目前暂定为学习大纲+知识点的形式罗列,后续考虑加入具体案例和思维导图表示层级关系。说明【?】标题中间带有?说明带有疑惑,【{}】标题层级中间带有{}说明是重点章节,【[]】标题层级中间带有[]说明章节中难度较高,建议仔细阅读。目录前言Go语言简介GoLang产生背景GoLang特性Go语言基础Go程序基本概念Go程序基本结构应用程序入口退出返回值。

阿凌哥哥 1153

go语言学习笔记

go语言学习笔记一、变量的使用1.1 什么是变量1.2 声明变量1.3 注意事项二、常量的使用2.1 常量声明2.2 iota三、打印输出3.1 fmt包3.2 导入包3.3 常用打印函数四、键盘输入4.1 fmt包读取键盘输入4.2 bufio包读取五、基本数据类型5.1 布尔型bool5.2 数值型5.3 字符串型5.4 数据类型转换:Type Convert六、复合类型(派生类型)七、运算符7.1 算术运算符7.2 关系运算符7.3 逻辑运算符7.4 位运算符7.5 赋值运算符7.6优先级运算符优先

金荣的个人技术博客 2006

Go语言学习笔记(一)

Go语言简单入门

一起交流,一起进步 798

Go语言学习笔记(更新中)

Go语言学习笔记 参考网址 https://www.runoob.com/go/go-tutorial.html https://tour.go-zh.org/list 认识Go 特色 简洁、快速、安全 并行、有趣、开源 内存管理、数组安全、编译迅速 用途 Go 语言被设计成一门应用于搭载 Web 服务器,存储集群或类似用途的巨型中央服务器的系统编程语言。 对于高性能分布式系统领域而言,Go 语言无疑比大多数其它语言有着更高的开发效率。它提供了海量并行的支持,这对于游戏服务端的开发而言是再好不过了

qq_43528044的博客 340

Go语言学习笔记

所有博客内容首发于我的个人博客liwenzhou.com,特搬运到这里。 《Go语言学习之路》博客目录。 2015年底我因为工作原因接触到了Go语言,那时网上关于Go语言的学习资料不多,好在一直坚持到现在。我把自己学习Go语言的笔记都整理到这里,希望能给Go社区的发展出一点绵薄之力,帮助更多的人加入Gopher大家庭。 Go语言介绍 为什么你应该学习Go语言? →B站视频链接 开发环境准备 ...

qq1289287487的博客 562

【Go语言学习系列06】Go基础语法(四):数组与切片

深入解析Go语言数组与切片的底层原理,通过实例讲解内存布局、扩容机制与性能优化技巧,掌握这两种核心数据结构的高效使用方法

GopherTribe的博客 1043
上一篇: Go语言学习笔记——(三)变量与数据类型
下一篇: Go语言学习笔记——(五)流程控制
Hurricane-cn
博客等级 码龄8年 82粉丝 10原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值