Go 语言运算符详解:加法、算术、赋值、比较、逻辑和位运算符全面解析

运算符用于对变量和值执行操作。

加号运算符(+)将两个值相加,如下面的示例所示:

示例代码:

package mainimport ("fmt"
)func main() {var a = 15 + 25fmt.Println(a)
}

尽管加号运算符通常用于将两个值相加,但它也可以用于将变量和值相加,或者将一个变量和另一个变量相加。

示例代码:

package mainimport ("fmt"
)func main() {var (sum1 = 100 + 50   // 150 (100 + 50)sum2 = sum1 + 250 // 400 (150 + 250)sum3 = sum2 + sum2 // 800 (400 + 400))fmt.Println(sum3)
}

算术运算符

算术运算符用于执行常见的数学操作。

  • +:加法,将两个值相加,如 x + y
  • -:减法,从一个值中减去另一个值,如 x - y
  • *:乘法,将两个值相乘,如 x * y
  • /:除法,将一个值除以另一个值,如 x / y
  • %:模运算,返回除法余数,如 x % y
  • ++:自增,将变量的值增加1,如 x++
  • --:自减,将变量的值减少1,如 x–
    将10乘以5,并打印结果。
package mainimport ("fmt"
)func main() {fmt.Print(10 * 5)
}

赋值运算符

赋值运算符用于将值分配给变量。在下面的示例中,我们使用赋值运算符(=)将值10分配给名为x的变量:

package mainimport ("fmt"
)func main() {var x = 10fmt.Println(x)
}

加法赋值运算符(+=)将一个值添加到变量中:

package mainimport ("fmt"
)func main() {var x = 10x += 5fmt.Println(x)
}

所有赋值运算符的列表:

  • =:分配,如 x = 5
  • +=:加法赋值,如 x += 3(等同于 x = x + 3)
  • -=:减法赋值,如 x -= 3(等同于 x = x - 3)
  • *=:乘法赋值,如 x *= 3(等同于 x = x * 3)
  • /=:除法赋值,如 x /= 3(等同于 x = x / 3)
  • %=:模赋值,如 x %= 3(等同于 x = x % 3)
  • &=:按位与赋值,如 x &= 3(等同于 x = x & 3)
  • |=:按位或赋值,如 x |= 3(等同于 x = x | 3)
  • ^=:按位异或赋值,如 x ^= 3(等同于 x = x ^ 3)
  • >>=:有符号右移赋值,如 x >>= 3(等同于 x = x >> 3)
  • <<=:左移赋值,如 x <<= 3(等同于 x = x << 3)

比较运算符

比较运算符用于比较两个值。注意:比较的返回值要么是true(1),要么是false(0)。在下面的示例中,我们使用大于运算符(>)来判断5是否大于3:

package mainimport ("fmt"
)func main() {var x = 5var y = 3fmt.Println(x > y) // 返回1(true),因为5大于3
}

所有比较运算符的列表:

  • ==:等于,如 x == y
  • !=:不等于,如 x != y
  • >:大于,如 x > y
  • <:小于,如 x < y
  • >=:大于等于,如 x >= y
  • <=:小于等于,如 x <= y

逻辑运算符

逻辑运算符用于确定变量或值之间的逻辑关系:

  • &&:逻辑与,如果两个语句都为真,则返回true,如 x < 5 && x < 10
  • ||:逻辑或,如果其中一个语句为真,则返回true,如 x < 5 || x < 4
  • !:逻辑非,将结果反转,如果结果为true,则返回false,如 !(x < 5 && x < 10)

位运算符

位运算符用于处理二进制数字:

  • &:与运算,如果两个位都为1,则将结果位设置为1,如 x & y
  • |:或运算,如果两个位中至少一个为1,则将结果位设置为1,如 x | y
  • ^:异或运算,如果只有一个位为1,则将结果位设置为1,如 x ^ y
  • <<:左移,通过从右边添加零来左移位,如 x << 2
  • >>:右移,通过从左边移除位来右移,如 x >> 2

最后

为了方便其他设备和平台的小伙伴观看往期文章:

微信公众号搜索:Let us Coding,关注后即可获取最新文章推送

看完如果觉得有帮助,欢迎 点赞、收藏、关注

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/625079.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue3 锚点定位 点击滚动高亮

功能描述 点击导航跳到对应模块的起始位置&#xff0c;并且高亮点击的导航&#xff1b; 滚动到相应的模块时&#xff0c;对应的导航也自动高亮&#xff1b; 效果展示 注意事项 一定要明确哪个是要滚动的盒子&#xff1b;滚动的高度要减去导航栏的高度&#xff1b;当前在导航1…

C++ 树与图的深度优先遍历 || 模版题:树的重心

树和无向图都可以看成有向图&#xff08;无向图在添加边的时候添加双向的&#xff09; 下面是模版&#xff0c;实际使用要根据情况改&#xff1a; #include <iostream> #include <cstring> using namespace std;const int N 10010, M N * 2;int n; int h[N], e[…

【VTKExamples::PolyData】第二期 曲率

很高兴在雪易的CSDN遇见你 VTK技术爱好者 QQ:870202403 前言 本文分享VTK中的曲率计算及显示,希望对各位小伙伴有所帮助! 感谢各位小伙伴的点赞+关注,小易会继续努力分享,一起进步! 你的点赞就是我的动力(^U^)ノ~YO 目录 前言 1. Curvatures样例 2. vtkCurv…

【发票识别】支持pdf、ofd、图片格式(orc、信息提取)的发票

背景 为了能够满足识别各种发票的功能&#xff0c;特地开发了当前发票识别的功能&#xff0c;当前的功能支持pdf、ofd、图片格式的发票识别&#xff0c;使用到的技术包括文本提取匹配、ocr识别和信息提取等相关的技术&#xff0c;用到机器学习和深度学习的相关技术。 体验 体…

vue知识-06

es6导入导出语法 # 做项目&#xff1a;肯定要写模块--导入使用 # 如果包下有个 index.js 直接导到index.js上一次即可 默认导出和导入 : export default name // 只导出变量 export default add // 只导出函数 export default {name,add} // 导出对象 export defau…

Cesium中设置弹窗随轨迹动画对象移动

1.这是要移动的弹窗&#xff0c;隐藏显示逻辑、样式、展示内容自己写&#xff0c;主要就是动态设置弹窗的style&#xff0c;floatLeft和floatTop都是Vue中的data双向绑定数据&#xff1b; <div id"box" v-show"hasMove" :style"{ left: floatLeft…

【软件测试学习笔记2】用例设计方法

1.能对穷举场景设计测试点&#xff08;等价法&#xff09; 等价类&#xff1a; 说明&#xff1a;在所有测试数据中&#xff0c;具有某种共同特征的数据集合进行划分 分类&#xff1a;有效等价类&#xff1a;满足需求的数据集合 无效等价类&#xff1a;不满足需求的数据集合 步…

【Linux】Git - 新手入门

文章目录 1. git 版本控制器 - 该如何理解&#xff1f;2. git / gitee / github 区别&#xff1f;3. Linux 中 git 的使用3.1 安装 git3.2 使用 github 新建远端仓库3.2.1 账号注册3.2.2 创建代码仓库3.2.3 克隆仓库到本地3.2.4 .gitignore 文件 3.3 使用 git 提交代码到 githu…

刷题02 数组easy

1752.数组是否能经排序和轮转得到 如果整个数组非递减&#xff0c;返回true&#xff0c;如果只有两个子数列非递减&#xff0c;并且两个子序列之间是有序的&#xff0c;返回true。 先找到第一个不满足非递减的位置i&#xff0c;如果inumsize&#xff0c;说明整个数组非递减。否…

LeetCode 0082.删除排序链表中的重复元素 II:模拟

【LetMeFly】82.删除排序链表中的重复元素 II&#xff1a;模拟 力扣题目链接&#xff1a;https://leetcode.cn/problems/remove-duplicates-from-sorted-list-ii/ 给定一个已排序的链表的头 head &#xff0c; 删除原始链表中所有重复数字的节点&#xff0c;只留下不同的数字…

1【Linux】入门 (权限的理解||umask||粘滞位||cc++程序的翻译过程||解释性语言和编译性语言的区别)

无废话&#xff0c;全干货 一.权限 1.基本权限 读&#xff08;r&#xff09;&#xff1a; Read 对文件而言&#xff0c;具有读取文件内容的权限&#xff1b;对目录来说&#xff0c;具有浏览该目录信息的权限。 写&#xff08;w&#xff09;&#xff1a; Write 对文件而言&…

线程池执行流程详解,主要介绍其参数,以及执行过程中核心线程,队列,最大线程等的执行添加顺序,以及为什么这么做

线程池执行流程主要涉及到以下几个关键组件&#xff1a;核心线程数、任务队列、最大线程数以及拒绝策略等。以下是线程池的工作流程详解&#xff1a; 创建线程池&#xff1a; 当我们创建一个线程池时&#xff0c;需要指定几个核心参数&#xff0c;如corePoolSize(核心线程数)、…

数据结构学习 jz30 包含 min 函数的栈

关键词&#xff1a;排序 题目&#xff1a;最小栈 方法一&#xff1a;在记录这个数的同时&#xff0c;记录目前的最小值。看了提示才写出来的。 方法二&#xff1a;辅助栈。辅助栈保持非严格递减。看了k神的答案。 方法一&#xff1a; 一开始没想到怎么存最小&#xff0c;看…

【野火i.MX6NULL开发板】Linux系统下的Hello World

0、前言 参考资料&#xff1a; 《野火 Linux 基础与应用开发实战指南基于 i.MX6ULL 系列》PDF 第25章 本章比较抽象&#xff0c;涉及理论知识&#xff0c;不明白&#xff0c;可以看看视频讲解&#xff1a; https://www.bilibili.com/video/BV1JK4y1t7io?p29&vd_sourcef…

C++中JSON与string格式互转

1、JSON-》string 操作步骤&#xff1a; 1、在C中新建一个json对象并赋值&#xff0c;然后将其转给char *data。 2、在使用 #include <json.h> 头文件时&#xff0c;通常是使用第三方库 jsoncpp。由于它不是标准库的一部分&#xff0c;所以需要从官网http://jsoncpp.sou…

拼多多今年的校招薪资。。。

拼多多校招情况分析 关于校招情况分析&#xff0c;我们写过了争议巨巨巨巨大的 华为、互联网宇宙厂 字节跳动 以及如今有点高攀不起的新能源车企 比亚迪。 群里收集过小伙伴的意见&#xff0c;除上述大厂以外&#xff0c;大家最感兴趣的还是市值刚超过阿里的砍厂&#xff1a;拼…

transbigdata笔记:其他方法

1 出租车相关 1.1 taxigps_to_od transbigdata.taxigps_to_od(data, col[VehicleNum, Stime, Lng, Lat, OpenStatus]) 输入出租车GPS数据&#xff0c;提取OD信息 data出租车GPS数据col[VehicleNum, Time, Lng, Lat, OpenStatus]五列 比如GPS数据长这样&#xff1a; oddata …

Maven《二》-- Maven的安装与配置(亲测成功版)

目录 &#x1f436;2.1 Maven的安装条件 &#x1f436;2.2 Maven安装步骤 1. 检查本地%JAVA_HOME% 2. 解压maven 3. 配置maven的环境变量 4. 校验maven是否配置成功 5. 配置本地仓库 &#x1f436;2.3 Idea配置本地Maven软件 &#x1f436;2.1 Maven的安装条件 各个工具…

为什么要找实习以及如何更好地度过实习期

前言 在职业发展的旅程中&#xff0c;实习是一个至关重要的阶段。不论是在大学生涯的尾声&#xff0c;还是在职场新人的起步阶段&#xff0c;寻找实习机会都是一项关键任务。然而&#xff0c;为什么要找实习&#xff1f;这个问题背后蕴含着更深层次的意义和价值。在这篇博客中…

javascript 对yield生成器的理解

什么情况下可以使用yield&#xff0c;如果你后端传过来的数据量较大&#xff0c;你可以使用yield来进行懒加载&#xff0c;避免一次性的加载对前端造成卡顿&#xff0c;或长时间渲染等待&#xff0c;比较如说加载10万或几十万条数据时&#xff0c;前端一方面要读取一方面还要渲…