当前位置: 首页 > 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…...

Qwen2.5-14B-Instruct部署优化:像素剧本圣殿FlashAttention-2加速实测

Qwen2.5-14B-Instruct部署优化&#xff1a;像素剧本圣殿FlashAttention-2加速实测 1. 项目背景与优化目标 像素剧本圣殿是一款基于Qwen2.5-14B-Instruct深度微调的专业剧本创作工具。这款工具将AI推理能力与8-Bit复古美学相结合&#xff0c;为创作者提供沉浸式的剧本开发体验…...

OpenClaw+Qwen3.5-9B:法律文档审查助手实战

OpenClawQwen3.5-9B&#xff1a;法律文档审查助手实战 1. 为什么需要AI法律文档助手&#xff1f; 去年接手一个跨境合作项目时&#xff0c;我曾在72小时内手动审阅了137页的英文合同草案。那段经历让我意识到&#xff1a;传统人工审查不仅效率低下&#xff0c;还容易因疲劳遗…...

东华OJ-基础题-33-数字之和(C++)

问题描述 输入一个正整数&#xff0c;求这个正整数的各位数字之和。输入说明 你的程序需要从标准输入设备&#xff08;通常为键盘&#xff09;中读入多组测试数据。每组测试数据为正整数&#xff0c;每行一个N&#xff0c;N小于20000输出说明 对每组测试数据&#xff0c;你的程…...

家庭知识库中心:OpenClaw+Qwen3.5-9B管理个人数字资产

家庭知识库中心&#xff1a;OpenClawQwen3.5-9B管理个人数字资产 1. 为什么需要家庭知识库 去年搬家时&#xff0c;我在整理纸质文件的过程中发现一个严重问题&#xff1a;孩子的疫苗接种记录、房产合同、医疗报告等重要文档分散在多个文件夹中&#xff0c;紧急情况下根本找不…...

3个简单技巧让YOLO小目标检测精度提升50%:Ultralytics实战指南

3个简单技巧让YOLO小目标检测精度提升50%&#xff1a;Ultralytics实战指南 【免费下载链接】ultralytics Ultralytics YOLO &#x1f680; 项目地址: https://gitcode.com/GitHub_Trending/ul/ultralytics 你是否在为监控视频中远处行人检测不准而烦恼&#xff1f;工业质…...

大规模模型训练卡在92%?PyTorch 3.0静态图分布式调试全流程:从Graph IR Dump到Device Placement热力图分析

第一章&#xff1a;PyTorch 3.0静态图分布式训练全景概览PyTorch 3.0 引入了原生静态图编译能力&#xff08;TorchDynamo Inductor 后端深度集成&#xff09;&#xff0c;结合 torch.distributed 的增强型 SPMD&#xff08;Single Program, Multiple Data&#xff09;抽象&…...

STM32电位器驱动库:轻量级ADC封装与中值滤波实现

1. 项目概述MentorBit-Potenciometro 是一款专为 MentorBit 系统设计的轻量级电位器&#xff08;Potentiometer&#xff09;模块驱动库&#xff0c;面向 STM32 平台&#xff08;典型为 STM32F4/F7/H7 系列&#xff09;的嵌入式固件开发。该库并非通用 ADC 抽象层&#xff0c;而…...

DHL集团与中国外运将进一步深化全球业务协同

、美通社消息&#xff1a;近日&#xff0c;DHL集团与中国外运正式签署谅解备忘录。双方宣布&#xff0c;将在过往坚实合作的基础上&#xff0c;进一步深化全球业务协同&#xff0c;共同开启新一轮战略对话与长远布局。此次签约正值双方合资公司——中外运敦豪成立四十周年。作为…...

Google AI Agent白皮书爆了!读懂它,面试大厂SDE/MLE轻松拿Offer!

Google新发布的AI Agent白皮书&#xff0c;深入解析了生成式AI的核心机制、组成结构及应用潜力&#xff0c;并介绍了LangChain的实现方法。该白皮书适合CS留学生&#xff0c;尤其是AI、机器学习或智能系统开发兴趣者&#xff0c;对提升AI系统架构理解、掌握智能体分级体系及技术…...

Simple Web Serial:Web与Arduino的轻量级事件驱动串口通信库

1. 项目概述Simple Web Serial 是一个面向嵌入式与 Web 跨域协同开发的轻量级双向通信桥梁库&#xff0c;其核心目标是消除 Web Serial API 的底层复杂性&#xff0c;让 Arduino 等基于 UART 的微控制器能以事件驱动&#xff08;event-driven&#xff09;范式与浏览器端 JavaSc…...