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

9.4 Go语言入门(运算符)

Go语言入门(运算符)

  • 目录
    • 三、运算符
      • 1. 算术运算符
      • 2. 关系运算符
      • 3. 逻辑运算符
      • 4. 位运算符
      • 5. 赋值运算符
      • 6. 其他运算符
      • 7. 运算符优先级

目录

Go 语言(Golang)是一种静态类型、编译型语言,由 Google 开发,专注于简洁性、并发和高效性。

下面是 Go 语言的基础语法讲解和代码示例。


上一篇:二、Go语言入门(变量声明和函数调用)


三、运算符

在 Go 语言中,运算符是用于执行各种操作的符号或关键字。运算符可以用于数值计算、比较操作、逻辑运算、位操作等。

1. 算术运算符

算术运算符用于执行基本的数学运算。

  • + :加法
  • - :减法
  • * :乘法
  • / :除法
  • % :取模
package mainimport "fmt"func main() {a := 10b := 3fmt.Println("a + b =", a + b) // 输出:13fmt.Println("a - b =", a - b) // 输出:7fmt.Println("a * b =", a * b) // 输出:30fmt.Println("a / b =", a / b) // 输出:3fmt.Println("a % b =", a % b) // 输出:1
}

2. 关系运算符

关系运算符用于比较两个值,返回布尔值。

  • == :等于
  • != :不等于
  • > :大于
  • < :小于
  • >= :大于等于
  • <= :小于等于
package mainimport "fmt"func main() {a := 10b := 20fmt.Println("a == b:", a == b) // 输出:falsefmt.Println("a != b:", a != b) // 输出:truefmt.Println("a > b:", a > b)   // 输出:falsefmt.Println("a < b:", a < b)   // 输出:truefmt.Println("a >= b:", a >= b) // 输出:falsefmt.Println("a <= b:", a <= b) // 输出:true
}

3. 逻辑运算符

逻辑运算符用于连接布尔表达式。

  • && :逻辑与(AND)
  • || :逻辑或(OR)
  • ! :逻辑非(NOT)
package mainimport "fmt"func main() {a := trueb := falsefmt.Println("a && b:", a && b) // 输出:falsefmt.Println("a || b:", a || b) // 输出:truefmt.Println("!a:", !a)         // 输出:falsefmt.Println("!b:", !b)         // 输出:true
}

4. 位运算符

位运算符用于对整数类型的位进行操作。

  • & :按位与
  • | :按位或
  • ^ :按位异或
  • &^ :按位清除(AND NOT)
  • << :左移
  • >> :右移
package mainimport "fmt"func main() {a := 10       // 二进制:1010b := 3        // 二进制:0011fmt.Println("a & b:", a & b)   // 输出:2  (二进制:0010)fmt.Println("a | b:", a | b)   // 输出:11 (二进制:1011)fmt.Println("a ^ b:", a ^ b)   // 输出:9  (二进制:1001)fmt.Println("a &^ b:", a &^ b) // 输出:8  (二进制:1000)fmt.Println("a << 1:", a << 1) // 输出:20 (二进制:10100)fmt.Println("a >> 1:", a >> 1) // 输出:5  (二进制:0101)
}

5. 赋值运算符

赋值运算符用于给变量赋值。

  • = :赋值
  • += :加法赋值
  • -= :减法赋值
  • *= :乘法赋值
  • /= :除法赋值
  • %= :取模赋值
  • <<= :左移赋值
  • >>= :右移赋值
  • &= :按位与赋值
  • |= :按位或赋值
  • ^= :按位异或赋值
  • &^= :按位清除赋值
package mainimport "fmt"func main() {var a int = 10a += 5   // 相当于 a = a + 5fmt.Println("a += 5:", a) // 输出:15a -= 3   // 相当于 a = a - 3fmt.Println("a -= 3:", a) // 输出:12a *= 2   // 相当于 a = a * 2fmt.Println("a *= 2:", a) // 输出:24a /= 4   // 相当于 a = a / 4fmt.Println("a /= 4:", a) // 输出:6a %= 3   // 相当于 a = a % 3fmt.Println("a %= 3:", a) // 输出:0a = 8a <<= 1  // 相当于 a = a << 1fmt.Println("a <<= 1:", a) // 输出:16a >>= 2  // 相当于 a = a >> 2fmt.Println("a >>= 2:", a) // 输出:4a &= 3   // 相当于 a = a & 3fmt.Println("a &= 3:", a) // 输出:0a |= 2   // 相当于 a = a | 2fmt.Println("a |= 2:", a) // 输出:2a ^= 3   // 相当于 a = a ^ 3fmt.Println("a ^= 3:", a) // 输出:1a &^= 2 // 相当于 a = a &^ 2fmt.Println("a &^= 2:", a) // 输出:1
}

6. 其他运算符

赋值运算符用于给变量赋值。

  • & :取地址
  • * :指针运算符
package mainimport "fmt"func main() {a := 10p := &a         // 取地址fmt.Println("Address of a:", p)fmt.Println("Value of *p:", *p) // 解引用
}

7. 运算符优先级

运算符的优先级决定了它们在表达式中计算的顺序。高优先级的运算符在低优先级的运算符之前执行。运算符的优先级如下,从高到低:

  1. * / % << >> & &^
  2. + - | ^
  3. == != < <= > >=
  4. &&
  5. ||

可以使用括号 () 来显式地指定计算顺序。

package mainimport "fmt"func main() {a := 10b := 3c := 2result := a + b * c    // 等同于 a + (b * c)fmt.Println(result)    // 输出:16result = (a + b) * cfmt.Println(result)    // 输出:26
}

通过理解和掌握这些运算符及其使用方法,可以有效地编写和调试 Go 语言代码。


下一篇:四、Go语言入门(条件语句和循环语句)


在这里插入图片描述

相关文章:

9.4 Go语言入门(运算符)

Go语言入门&#xff08;运算符&#xff09; 目录三、运算符1. 算术运算符2. 关系运算符3. 逻辑运算符4. 位运算符5. 赋值运算符6. 其他运算符7. 运算符优先级 目录 Go 语言&#xff08;Golang&#xff09;是一种静态类型、编译型语言&#xff0c;由 Google 开发&#xff0c;专注…...

CLIP 源码分析:simple_tokenizer.py

tokenizer的含义 from .clip import *引入头文件时为什么有个. 正文 import gzip import html import os from functools import lru_cacheimport ftfy import regex as re# 上面的都是头文件# 这段代码定义了一个函数 default_bpe()&#xff0c;它使用了装饰器 lru_cache()。…...

AWS安全性身份和合规性之Shield

shield&#xff1a;盾(牌);(保护机器和操作者的)护罩&#xff0c;防护屏&#xff0c;挡板;屏障;保护物;&#xff08;警察的&#xff09;盾形徽章;保护人;掩护物;盾形纹徽;盾形奖牌; AWS Shield是一项AWS托管的DDoS&#xff08;Distributed Denial of Service&#xff0c;分布式…...

Midjourney入门篇 | 打造最逼真的照片(强烈推荐)

强烈推荐&#xff1a;如何用Midjourney打造最逼真的照片&#xff08;提示词汇总&#xff09; 前言1、逼真照片生成公式2、提示词速查表 总结 前言 今天分享一个系统的入门级Midjourney制图教程&#xff1a;涵盖了最基础的绘画概念及提示词&#xff0c;精选了一些重要的提示词&…...

【运维自动化-配置平台】如何跨业务转移主机

在如何创建业务拓扑中&#xff0c;了解到业务是蓝鲸体系重要的资源管理纬度&#xff0c;主机在业务之前需要流转怎么做呢&#xff1f;比如要把A业务一台主机划给B业务使用权限中心 跨业务转移主机一般场景是由源主机所在业务的负责人发起&#xff0c;需要申请目标业务的相关权…...

connection problem,giving up

参考&#xff1a; https://zhuanlan.zhihu.com/p/93438433 仅仅安装 sudo apt-get install xrdp 在用RDP远程的时候总是卡在登录界面&#xff0c;connection problem,giving up&#xff0c; some problem… 第一步&#xff1a; sudo apt-get install xserver-xorg-core sudo…...

Linux-----sed案例练习

1.数据准备 准备数据如下&#xff1a; [rootopenEuler ~]# cat openlab.txt My name is jock. I teach linux. I like play computer game. My qq is 24523452 My website is http://www.xianoupeng.com My website is http://www.xianoupeng.com My website is http://www.…...

【华为OD机试-C卷D卷-200分】运输时间(C++/Java/Python)

【华为OD机试】-(A卷+B卷+C卷+D卷)-2024真题合集目录 【华为OD机试】-(C卷+D卷)-2024最新真题目录 题目描述 M(1 ≤ M ≤ 20)辆车需要在一条不能超车的单行道到达终点,起点到终点的距离为 N(1 ≤ N ≤ 400)。速度快的车追上前车后,只能以前车的速度继续行驶,求最后一…...

flink程序本地运行报: A JNI error has occurred和java.lang.NoClassDefFoundError

1.问题描述 在idea中运行flink job程序出现如下错误&#xff1a; Error: A JNI error has occurred, please check your installation and try again Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/flink/api/common/io/FileInputFormat …...

yolox-何为EMA?

何为EMA&#xff1f; 定义&#xff1a; 滑动平均/指数加权平均&#xff1a;用来估计变量的局部均值&#xff0c;使得变量的更新与一段时间内的历史取值有关&#xff0c;滑动平均可以看作是变量的过去一段时间取值的均值。 优点&#xff1a; 相比于直接赋值&#xff0c;滑动平均…...

Java:String、StringBuffer和StringBuilder的区别

参考&#xff1a; https://blog.csdn.net/kingzone_2008/article/details/9220691 https://blog.csdn.net/itchuxuezhe_yang/article/details/89966303 String 常量字符串&#xff0c;每次修改都是会新创建一个字符串&#xff0c;当要频繁修改字符串的时候不建议使用 String S…...

虚拟化技术 分布式资源调度

一、实验内容 实现分布式资源调度 二、实验主要仪器设备及材料 安装有64位Windows操作系统的台式电脑或笔记本电脑&#xff0c;建议4C8G或以上配置已安装VMware Workstation Pro已安装Windows Server 2008 R2 x64已安装vCenter Server 三、实验步骤 将主机esxi1和esxi2加入…...

【Element-plus】vue组合式中使用el-upload通过oss接口上传图片流程(可直接复制使用)

Html <el-upload:actionossUrl:on-success"handleImgSuccess":headers"{Authorization:token}"><el-icon><Plus /></el-icon>点击上传图片</el-upload> JS const ossUrl ref("") ossUrl.value 【你的ossUrl】…...

C++ 数据结构算法 学习笔记(33) -查找算法及企业级应用

C 数据结构算法 学习笔记(33) -查找算法及企业级应用 数组和索引 日常生活中&#xff0c;我们经常会在电话号码簿中查阅“某人”的电话号码&#xff0c;按姓查询或者按字母排 序查询&#xff1b;在字典中查阅“某个词”的读音和含义等等。在这里&#xff0c;“电话号码簿”和…...

【Linux】在Ubuntu 16.04上安装Gerrit + PostgreSQL + Apache服务

Gerrit是一个基于Git版本控制系统的运行于Web浏览器上的Code Review工具&#xff0c;本文叙述如何在Ubuntu 16.04上安装Gerrit服务。&#xff08;当然安装Gerrit的方法有很多&#xff0c;本文只是其中之一&#xff09; 文章目录 前提安装PostgreSQL数据库并创建用户下载、配置和…...

数据倾斜那些事儿

目录 一、什么是数据倾斜&#xff1f; 二、预判与预防 三、躲闪策略 四、硬刚策略 一、什么是数据倾斜&#xff1f; 之前在大厂当了好几年的sqlboy&#xff0c;数据倾斜这个“小烦人精”确实经常在工作中出没。用简单的话来说&#xff0c;数据倾斜就像是“贫富差距”在数据…...

python考试成绩管理与分析:从列表到方差

新书上架~&#x1f447;全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我&#x1f446;&#xff0c;收藏下次不迷路┗|&#xff40;O′|┛ 嗷~~ 目录 一、考试成绩的输入与列表管理 二、成绩的总分与平均成绩计算 三、成绩方差的计算 四、成…...

Excel某列中有不连续的数据,怎么提取数据到新的列?

这里演示使用高级筛选的例子&#xff1a; 1.设置筛选条件 在D2单元格输入公式&#xff1a;COUNTA(A4)>0 这里有两个注意事项&#xff1a; *. 公式是设置在D2单元格&#xff0c;D1单元格保持为空&#xff0c; **. 为什么公式中选A4单元格&#xff0c;A列的第一个数据在A3…...

翻译《The Old New Thing》- What does it mean when a display change is temporary?

What does it mean when a display change is temporary? - The Old New Thing (microsoft.com)https://devblogs.microsoft.com/oldnewthing/20080104-00/?p23923 Raymond Chen 2008年01月04日 什么叫临时性的显示设置变更&#xff1f; 当您调用ChangeDisplaySettings函数时…...

【C语言】char,short char,long char分别是多少字节,多少位,多少bit

一&#xff0c;char&#xff0c;short char&#xff0c;long char分别是多少字节 在 C 语言中&#xff0c;char、short、int、long 这些数据类型的大小是平台相关的&#xff0c;它们的大小取决于编译器和操作系统的实现。然而&#xff0c;它们的大小通常遵循以下规则&#xff…...

3分钟搞定Windows苹果USB驱动安装:终极免费解决方案

3分钟搞定Windows苹果USB驱动安装&#xff1a;终极免费解决方案 【免费下载链接】Apple-Mobile-Drivers-Installer Powershell script to easily install Apple USB and Mobile Device Ethernet (USB Tethering) drivers on Windows! 项目地址: https://gitcode.com/gh_mirro…...

保姆级教程✅ 从零学InVEST/SolVES模型,附QGIS/PostgreSQL/R语言实操+数据预处理全流程

本内容将讲述用于评估生态系统服务价值的当量因子法、InVEST模型、SolVES模型及其原理&#xff0c;通过本课程的学习&#xff0c;您将学会三种模型的原理与运行方法&#xff1a;如何获取与制备模型数据&#xff1b;如何进行当量因子转换&#xff1b;如何利用InVEST模型进行生态…...

知识图谱与推荐系统实战

一、传统推荐系统的“天花板”协同过滤的困境你刷电商、看视频时&#xff0c;推荐系统总在猜你喜欢什么。最经典的协同过滤思路是“物以类聚、人以群分”&#xff1a;你买过A&#xff0c;那么买过A的人也常买B&#xff0c;于是把B推给你。这套方法简单有效&#xff0c;但也有硬…...

在 Clean Core 约束下扩展 SAP S/4HANA 标准 OData API

我们正在做的事情很具体,S/4HANA 后端已经能够发布产品主数据相关的 Enterprise Event,事件经过 Integration Suite、Event Mesh、Advanced Event Mesh,再进入 Kafka Event Broker,消费系统按照 product type 订阅不同的 material event。链路跑通以后,业务方很快发现一个…...

神经网络概念解码:从物理直觉到工程权衡的思维地图

1. 项目概述&#xff1a;这不是又一本“手把手写反向传播”的书&#xff0c;而是一张神经网络的思维地图“NN#2 — Neural Networks Decoded: Concepts Over Code”这个标题里&#xff0c;“NN#2”不是版本号&#xff0c;而是刻意设计的编号——它暗示这是一场持续进行的认知迭…...

东南大学论文模板终极指南:3步搞定毕业设计排版难题

东南大学论文模板终极指南&#xff1a;3步搞定毕业设计排版难题 【免费下载链接】SEUThesis 东南大学论文模板 项目地址: https://gitcode.com/gh_mirrors/seu/SEUThesis 对于每一位东南大学的学子来说&#xff0c;毕业季最头疼的往往不是论文内容本身&#xff0c;而是繁…...

glTF-Transform:现代3D应用中的glTF模型优化与处理实战指南

glTF-Transform&#xff1a;现代3D应用中的glTF模型优化与处理实战指南 【免费下载链接】glTF-Transform glTF 2.0 SDK for JavaScript and TypeScript, on Web and Node.js. 项目地址: https://gitcode.com/gh_mirrors/gl/glTF-Transform 在当今的3D应用开发中&#xf…...

3步解锁Beyond Compare 5专业版:Python密钥生成器终极指南

3步解锁Beyond Compare 5专业版&#xff1a;Python密钥生成器终极指南 【免费下载链接】BCompare_Keygen Keygen for BCompare 5 项目地址: https://gitcode.com/gh_mirrors/bc/BCompare_Keygen 还在为Beyond Compare 5的30天试用期而烦恼吗&#xff1f;想免费使用这款强…...

华硕笔记本性能优化神器:G-Helper轻量控制工具完全指南

华硕笔记本性能优化神器&#xff1a;G-Helper轻量控制工具完全指南 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, Vivobook, Zenbook, E…...

129、运动控制中的软件架构:分层设计

运动控制中的软件架构:分层设计 从一次半夜的电机啸叫说起 凌晨两点,车间里只剩示波器的荧光。我盯着那根诡异的电流波形——电机在低速运行时发出刺耳的啸叫,像指甲划过黑板。PID参数调了无数遍,滤波器换了好几种,问题依旧。直到我打开同事留下的代码,发现他把电流环、…...