Golang中的运算符

news2024/10/5 6:40:49

 

目录

运算符

算术运算符

代码案例:

关系运算符

代码案例:

逻辑运算符

代码案例:

位运算符

代码案例:

赋值运算符

代码案例:

其他运算符


运算符

算术运算符

Go语言中的算术运算符包括加、减、乘、除和取模等。需要注意的是,除法运算符/和取模运算符%只能用于整数类型,而不能用于浮点数类型。如果要进行浮点数除法,需要使用类型转换或浮点数常量。另外,Go语言中的自增自减运算符只能用于语句中,不能用于表达式中。

用于进行基本的算术运算,包括加法、减法、乘法、除法、取模等。常用的算术运算符如下:

运算符描述
+加法
-减法
*乘法
/除法
%取模/取余数

代码案例:

package main

import "fmt"

func main() {
    a := 10
    b := 3
    
    // 加法
    fmt.Println(a + b)  // 13
    
    // 减法
    fmt.Println(a - b)  // 7
    
    // 乘法
    fmt.Println(a * b)  // 30
    
    // 除法
    fmt.Println(a / b)  // 3
    
    // 取余
    fmt.Println(a % b)  // 1
}

关系运算符

Go语言中的关系运算符包括等于、不等于、大于、小于、大于等于和小于等于等。需要注意的是,比较运算符只能用于可比较的类型,例如整数、浮点数、字符串、指针等。而结构体、数组、函数等复杂类型则需要自定义比较函数或使用反射机制进行比较。

运算符描述
==检查两个值是否相等
!=检查两个值是否不相等
>检查左边的值是否大于右边的值
<检查左边的值是否小于右边的值
>=检查左边的值是否大于等于右边的值
<=检查左边的值是否小于等于右边的值

代码案例:

package main

import "fmt"

func main() {
    a := 10
    b := 3
    
    // 等于
    fmt.Println(a == b)  // false
    
    // 不等于
    fmt.Println(a != b)  // true
    
    // 大于
    fmt.Println(a > b)   // true
    
    // 小于
    fmt.Println(a < b)   // false
    
    // 大于等于
    fmt.Println(a >= b)  // true
    
    // 小于等于
    fmt.Println(a <= b)  // false
}

逻辑运算符

Go语言中的逻辑运算符包括与、或、非等。需要注意的是,与运算符&&和或运算符||具有短路特性,即只要能确定整个表达式的值就会停止计算。而非运算符!只能用于布尔类型,而不能用于整数类型。

运算符描述
&&逻辑 AND 运算符。如果两个操作数都是 true,则条件为 true,否则为 false
||逻辑 OR 运算符。如果两个操作数中有任意一个操作数为 true,则条件为 true,否则为 false
!逻辑 NOT 运算符。用于反转操作数的逻辑状态。如果条件为 true,则逻辑 NOT 运算符会将其变为 false

代码案例:

package main

import "fmt"

func main() {
    a := true
    b := false
    
    // 逻辑与
    fmt.Println(a && b)  // false
    
    // 逻辑或
    fmt.Println(a || b)  // true
    
    // 逻辑非
    fmt.Println(!a)     // false
}

位运算符

Go语言中的位运算符包括按位与、按位或、按位异或、按位左移和按位右移等。需要注意的是,位运算符只能用于整数类型,而不能用于浮点数类型。另外,位运算符的优先级比算术运算符和比较运算符低,需要使用括号来控制优先级。

运算符描述
&按位与运算符。对两个操作数的每个二进制位执行逻辑 AND 操作
|按位或运算符。对两个操作数的每个二进制位执行逻辑 OR 操作
^按位异或运算符。对两个操作数的每个二进制位执行逻辑 XOR 操作
<<左移运算符。将左操作数的所有位向左移动指定的位数
>>右移运算符。将左操作数的所有位向右移动指定的位数

代码案例:

package main

import "fmt"

func main() {
    a := 60
    b := 13
    
    // 按位与
    fmt.Println(a & b)   // 12
    
    // 按位或
    fmt.Println(a | b)   // 61
    
    // 按位异或
    fmt.Println(a ^ b)   // 49
    
    // 左移
    fmt.Println(a << 2)  // 240
    
    // 右移
    fmt.Println(a >> 2)  // 15
}

赋值运算符

Go语言中的赋值运算符包括简单赋值、加等于、减等于、乘等于、除等于、模等于、与等于、或等于、异或等于等。需要注意的是,赋值运算符可以同时使用于多个变量,例如a, b := 1, 2。另外,赋值运算符的优先级比大部分运算符都低,但比逻辑运算符高。

运算符描述
=简单赋值运算符。将右边表达式的值赋给左边的变量
+=加等于运算符。将右边表达式的值加到左边的变量上
-=减等于运算符。将右边表达式的值从左边的变量中减去
*=乘等于运算符。将右边表达式的值乘到左边的变量上
/=除等于运算符。将左边变量的值除以右边表达式的值
%=模等于运算符。将左边变量的值对右边表达式的值取模

代码案例:

package main

import "fmt"

func main() {
    a := 10
    b := 3
    
    // 简单赋值
    c := a
    fmt.Println(c)  // 10
    
    // 加法赋值
    a += b
    fmt.Println(a)  // 13
    
    // 减法赋值
    a -= b
    fmt.Println(a)  // 10
    
    // 乘法赋值
    a *= b
    fmt.Println(a)  // 30
    
    // 除法赋值
    a /= b
    fmt.Println(a)  // 10 / 3 = 3
    
    // 取余赋值
    a %= b
    fmt.Println(a)  // 1
}

其他运算符

Go语言中还有一些其他的运算符,例如取地址运算符&、指针运算符*、sizeof运算符等。需要注意的是,取地址运算符和指针运算符只能用于指针类型,而sizeof运算符只能用于静态类型。

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

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

相关文章

【深入理解redis】数据结构

文章目录 动态字符串SDS字符串编码类型 intsetDictZipListZipList的连锁更新问题 QuickListSkipListRedisObjectStringListSet结构ZSETHash Redis 共有 5 种基本数据结构&#xff1a;String&#xff08;字符串&#xff09;、List&#xff08;列表&#xff09;、Set&#xff08;…

2023进销存财务软件哪个好?哪些适合中小商户使用?

对于开店的老板来说&#xff0c;门店的财务管理一直都是比较头疼的一件事&#xff0c;销售业绩人工统计困难&#xff0c;记账对账效率低且容易出错。 使用进销存财务软件可以有效的帮助门店解决财务管理问题&#xff0c;但市面上这么多进销存财务软件&#xff0c;哪些性价比较高…

Android编译优化之混淆配置

Android编译优化之混淆配置 背景 为了使用java8及后续java新版本的特性&#xff0c;Google增加了一步编译过程—脱糖&#xff08;desugaring&#xff09;&#xff0c;但这一步会导致更长的编译时间&#xff0c;这也是为什么Google会推出D8和R8编译器来优化编译速度。 什么是脱…

【C语言】扫雷游戏

这里写目录标题 前言1.初始化棋盘2.展示棋盘3.布置雷4.开始扫雷4.1判断输赢4.2扫雷时连续性展开4.3展示玩法 5.整体代码展示5.1 game.h头文件展示5.2 game.c源文件展示5.3 text.c源文件展示 所属专栏&#xff1a;C语言 博主首页&#xff1a;初阳785 代码托管&#xff1a;chuyan…

了解 XML结构(一)

文章目录 1 XML定义2 了解XML结构3 XML节点类型4 加载读取XML5 小结 1 XML定义 XML是一种可扩展标记语言&#xff08;Extensible Markup Language, XML&#xff09;,可以用来标记数据&#xff0c;定义数据类型&#xff0c;是一种允许用户对自己的标记语言进行定义的源语言。 …

数据治理是一个部门的工作还是全业务体系的工作?_光点科技

随着互联网时代的到来&#xff0c;数据已成为企业生产和经营的重要资源。但是&#xff0c;随着数据量的不断增加和数据形态的多样化&#xff0c;如何管理和利用数据也成为了企业面临的一个重要问题。在这个过程中&#xff0c;数据治理成为了一个备受关注的话题。 那么&#xff…

ChatGPT1论文解读《Improving Language Understanding by Generative Pre-Training》

论文总结 以下是我阅读完整篇论文做的个人总结&#xff0c;基本包含了chatGPT1设计的完整框架思路&#xff0c;可以仅看【论文总结】章节。 在GPT1实现的核心架构中&#xff0c;包含两个阶段。 第一阶段 在第一阶段基于一个包含7000本书籍内容的海量未标注文本数据集进行无…

IP-Guard能否支持通过审批后才能发送邮件?

支持,但目前暂时只支持带有附件的邮件通过申请审批或者自我备案放开策略控制发送出去。 使用方式: 1、申请审批:设置了禁止发送邮件的邮件控制策略后,在申请权限-发送邮件中,设置允许发送,设置相关审批流程,管理员审批完成后即可发送。 -申请权限-审批流程 2、自我备案:…

SSM框架学习-注解开发第三方bean管理

1. 复习xml配置文件管理第三方bean 在Spring中&#xff0c;可以使用依赖注入&#xff08;Dependency Injection&#xff09;来管理和使用第三方Bean。Spring提供了多种方式来进行依赖注入&#xff0c;比如构造函数注入、Setter方法注入、字段注入等。下面以Setter方法注入为例&…

pycharm 常用插件,常用插件推荐

1. Key Promoter X 如果让我给新手推荐一个 PyCharm 必装插件&#xff0c;那一定是 Key Promoter X 。 它就相当于一个快捷键管理大师&#xff0c;它时刻地在&#xff1a; 教导你&#xff0c;当下你的这个操作&#xff0c;应该使用哪个快捷操作来提高效率&#xff1f;提醒你…

Scala学习(二)

文章目录 1.Scala的运算符1.1 Scala中的equals和 2.流程控制2.1 if2.2 Scala中的三目运算符2.3 for循环 3.循环中断 1.Scala的运算符 1.1 Scala中的equals和 回顾Java中的运算符 equals和,equals比较的为值&#xff0c; 比较的为地址 String a1new String("hi");…

【数据结构】线性表——带头双向循环链表

文章目录 带头双向循环链表带头双向循环链表主体结构带头双向循环链表操作函数介绍带头双向循环链表操作函数实现带头双向循环链表的初始化函数&#xff1a;打印函数带头双向循环链表插入函数&#xff1a;指定结点后插入和查找函数头插尾插 带头双向循环链表删除函数指定结点删…

2022东南大学网安916专硕上岸经验帖

本文目录 第一部分简单介绍我的一些选择 第二部分寒假大三下学期小学期暑假及大四上学期考前准备及考试过程考后估分与真实分数复试准备与复试过程复试结果导师选择经验对自己考研情况的评价一些建议 第一部分 简单介绍 最近忙完了毕业设计论文和教师资格证面试&#xff0c;终…

pc端项目的h5页面运行在手机浏览器使用vconsole查看页面元素、控制台、请求等信息

文章目录 一、vconsole介绍1. 作用2. 优势 二、使用1、jq项目和js项目2、vue项目 三、使用介绍1. 使用成功&#xff0c;在页面右下角会出现如下图的vConsole2. 常用功能&#xff08;控制台、请求、元素、存储器&#xff09; 一、vconsole介绍 1. 作用 使用vconsole来查看h5页…

怎么自学python?为什么选择python

自然是因为Python简单易学且应用领域广 Python近段时间一直涨势迅猛&#xff0c;在各大编程排行榜中崭露头角&#xff0c;得益于它多功能性和简单易上手的特性&#xff0c;让它可以在很多不同的工作中发挥重大作用。 正因如此&#xff0c;目前几乎所有大中型互联网企业都在使…

python写完程序怎么运行

python有两种运行方式&#xff0c;一种是在python交互式命令行下运行; 另一种是使用文本编辑器直接在命令行上运行。 注&#xff1a;以上两种运行方式均由CPython解释器编译运行。 当然&#xff0c;也可以将python代码写入eclipse中&#xff0c;用JPython解释器运行&#xff0c…

ACM - 字符串 - 基础(KMP)

字符串 一、KMP1、模板题 HDU1711 Number Sequence2、求最大匹配数 Ⅰ&#xff1a; HDU 2087 剪花布条&#xff08;子串不重叠&#xff09;3、求最大匹配数 Ⅱ&#xff1a;AcWing 831. KMP字符串&#xff08;子串可重叠&#xff09;4、s2 是不是 s1 的翻转&#xff1a;Leetcode…

draw.io二次开发(3)从删删减减开始定制自己的drawio

经过克隆代码、配置IntelliJ/IDEA和Tomcat、以及本地部署&#xff08;详见前几篇&#xff09;之后&#xff0c;终于到了上手改代码的环节了。 首先需要强调的一点是&#xff1a;千万不要去改 *.min.js 文件中的代码&#xff0c;这些文件都是生成的压缩代码&#xff0c;我们一定…

MySQL原理(四):事务

前言 上一篇介绍了 MySQL 的索引&#xff0c;这一篇将介绍事务相关的内容。 在 MySQL 的使用场景中&#xff0c;经常会有一个操作包含多个 SQL 语句&#xff0c;比如转账这个操作&#xff0c;至少包含从甲的账户中扣除金额和给乙的账户中增加金额这两个更新语句。那假如 MySQ…

如何优化VPS服务器性能,提升网站访问速度?

随着互联网的发展&#xff0c;越来越多的企业开始使用VPS服务器来托管其网站。然而&#xff0c;一些企业经常会遇到网站速度慢、响应时间长等问题&#xff0c;这不仅会影响用户的体验&#xff0c;还会导致客户流失。因此&#xff0c;优化VPS服务器的性能&#xff0c;提升网站访…