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

GO语言基础之基本运算符

06.GO语言基础之基本运算符

文章目录

  • 06.GO语言基础之基本运算符
    • 一、运算符
      • 内置运算符:
    • 二、算术运算符
    • 三、关系运算符
    • 四、逻辑运算符
    • 五、位运算符
    • 六、赋值运算符

一、运算符

作用:运算符用于在程序运行时执行数学或逻辑运算。

内置运算符:

Go 语言内置的运算符有:

  1. 算术运算符
  2. 关系运算符
  3. 逻辑运算符
  4. 位运算符
  5. 赋值运算符

二、算术运算符

运算符描述
+相加
-相减
*相乘
/相除
%求余

注意: ++(自增)和--(自减)在Go语言中是单独的语句,并不是运算符

// 1. 算术运算符
a := 10
b := 20
fmt.Println(a + b)
fmt.Println(a - b)
fmt.Println(a * b)
fmt.Println(5 / 2) // 2
fmt.Println(5 % 2) // 1
/*
a++
fmt.Println(a)
a--
fmt.Println(a)
/*

三、关系运算符

运算符描述
==检查两个值是否相等,如果相等返回 True 否则返回 False。
!=检查两个值是否不相等,如果不相等返回 True 否则返回 False。
>检查左边值是否大于右边值,如果是返回 True 否则返回 False。
>=检查左边值是否大于等于右边值,如果是返回 True 否则返回 False。
<检查左边值是否小于右边值,如果是返回 True 否则返回 False。
<=检查左边值是否小于等于右边值,如果是返回 True 否则返回 False。
// 2. 关系运算符
fmt.Println(10 > 2)
fmt.Println(10 != 2)
fmt.Println(4 <= 5)

四、逻辑运算符

运算符描述
&&逻辑 AND 运算符。 如果两边的操作数都是 True,则为 True,否则为 False。
||逻辑 OR 运算符。 如果两边的操作数有一个 True,则为 True,否则为 False。
!逻辑 NOT 运算符。 如果条件为 True,则为 False,否则为 True。
// 3. 逻辑运算符
fmt.Println(10 > 5 && 1 == 1)
fmt.Println(!(10 > 5))
fmt.Println(1 > 5 || 1 == 1)

五、位运算符

位运算符对整数在内存中的二进制位进行操作。

运算符描述
&参与运算的两数各对应的二进位相与。 (两位均为1才为1)
|参与运算的两数各对应的二进位相或。 (两位有一个为1就为1)
^参与运算的两数各对应的二进位相异或,当两对应的二进位相异时,结果为1。 (两位不一样则为1)
<<左移n位就是乘以2的n次方。 “a<<b”是把a的各二进位全部左移b位,高位丢弃,低位补0。
>>右移n位就是除以2的n次方。 “a>>b”是把a的各二进位全部右移b位。
// 4. 位运算符
a := 1             // 001
b := 5             // 101
fmt.Println(a & b) // 001 => 1
fmt.Println(a | b) // 101 => 5
fmt.Println(a ^ b) // 100 => 4
fmt.Println(1 << 2) // 100 =>4
fmt.Println(4 >> 2) // 1   =>1

fmt.Println(1<<10) // 1024

六、赋值运算符

运算符描述
=简单的赋值运算符,将一个表达式的值赋给一个左值
+=相加后再赋值
-=相减后再赋值
*=相乘后再赋值
/=相除后再赋值
%=求余后再赋值
<<=左移后赋值
>>=右移后赋值
&=按位与后赋值
|=按位或后赋值
^=按位异或后赋值
// 5. 赋值运算符
var a int
a = 5
a += 5 // a = a + 5
fmt.Println(a)

相关文章:

  • Go语言基础之流程控制
  • Go语言之数组
  • Go语言基础之下划线
  • Go基础之切片
  • Go语言基础之map
  • Go语言基础之函数
  • Go语言之依赖管理
  • GO基础之关于切片操作的技巧
  • Go语言的主要特征
  • GO语言之Init函数和main函数
  • Golang内置类型和函数
  • Go高级之Map实现原理
  • windows将pycharm的 默认CMD 终端更改为git bash
  • Anaconda Windows环境搭建与基本使用
  • git 配置ssh key
  • 实现windows 窗体的自己画,网上摘抄的,学习了
  • Docker 笔记(2):Dockerfile
  • es6--symbol
  • Java小白进阶笔记(3)-初级面向对象
  • Mybatis初体验
  • orm2 中文文档 3.1 模型属性
  • Python socket服务器端、客户端传送信息
  • Vue--数据传输
  • 爱情 北京女病人
  • 初识 beanstalkd
  • 基于web的全景—— Pannellum小试
  • 基于游标的分页接口实现
  • 看图轻松理解数据结构与算法系列(基于数组的栈)
  • 聊聊flink的BlobWriter
  • 我与Jetbrains的这些年
  • 一个项目push到多个远程Git仓库
  • 3月27日云栖精选夜读 | 从 “城市大脑”实践,瞭望未来城市源起 ...
  • Salesforce和SAP Netweaver里数据库表的元数据设计
  • 如何用纯 CSS 创作一个货车 loader
  • ​第20课 在Android Native开发中加入新的C++类
  • ​批处理文件中的errorlevel用法
  • ​人工智能书单(数学基础篇)
  • $.extend({},旧的,新的);合并对象,后面的覆盖前面的
  • (poj1.2.1)1970(筛选法模拟)
  • (Redis使用系列) Springboot 实现Redis消息的订阅与分布 四
  • (博弈 sg入门)kiki's game -- hdu -- 2147
  • (第9篇)大数据的的超级应用——数据挖掘-推荐系统
  • (二)正点原子I.MX6ULL u-boot移植
  • (实战)静默dbca安装创建数据库 --参数说明+举例
  • (一)为什么要选择C++
  • (原創) 系統分析和系統設計有什麼差別? (OO)
  • (转)IOS中获取各种文件的目录路径的方法
  • (状压dp)uva 10817 Headmaster's Headache
  • ***通过什么方式***网吧
  • .bat批处理(八):各种形式的变量%0、%i、%%i、var、%var%、!var!的含义和区别
  • .chm格式文件如何阅读
  • .NET Compact Framework 3.5 支持 WCF 的子集
  • .NET/C# 使窗口永不激活(No Activate 永不获得焦点)
  • .NET教程 - 字符串 编码 正则表达式(String Encoding Regular Express)
  • ?php echo $logosrc[0];?,如何在一行中显示logo和标题?