tnblog
首页
视频
资源
登录

Go 运算符

5870人阅读 2020/8/16 15:52 总访问:3658598 评论:1 收藏:0 手机
分类: Go

go数据类型

Go 运算符

算术运算符

当A为10,B为20时

运算符 描述 实例
+ 相加 A + B 输出结果 30
- 相减 A - B 输出结果 -10
* 相乘 A * B 输出结果 200
/ 相除 B / A 结果输出为2
% 求余 B % A 输出结果0
++ 自增 A++ 输出结果 11
自减 A— 输出结果 9

Go 语言没有前置的++,—,(++a)

比较运算符

运算符 描述 实例
== 检查两个值是否相等,如果相等返回 True 否则返回 False。 (A==B)为 False
!= 检查两个值是否不相等,如果不相等返回 True 否则返回 False。 (A!=B)为 True
> 检查左边值是否大于右边值,如果是返回 True 否则返回 False。 (A > B)为 False
< 检查左边值是否小于右边的值,如果是返回 True 否则返回 False。 (A < B)为 True
>= 检查左边的值是否大于等于右边的值相等,如果是返回 True 否则返回 False。 (A>=B)为 False
<= 检查左边的值是否小于等于右边的值相等,如果是返回 True 否则返回 False。 (A>=B)为 True

用 == 比较数据

比较规则

  • 相同位数且含有相同个数的数组才可以比较
  • 每个元素都相同的才相等

示例


创建一个 operator_test.go 文件

golang


数组代码示例

  1. package operator_test
  2. import "testing"
  3. func TestCompareArray(t *testing.T) {
  4. a := [...]int{1, 2, 3, 4}
  5. b := [...]int{1, 2, 4, 3}
  6. //c := [...]int{1, 2, 3, 4, 5}
  7. d := [...]int{1, 2, 3, 4}
  8. t.Log(a == b)
  9. //首先呢,我们可以看见a与c编译错误,是因为它们对长度不同所导致的
  10. //t.Log(a == c)
  11. t.Log(a == d)
  12. }

运行结果

逻辑运算符

运算符 描述 实例
&& 逻辑 And 运算符。如果两边都为True,则条件为True,否则条件为 False (A && B)为 False
|| 逻辑 Or 运算符。如果两边一边为True,则条件为True,否则条件为 False (A ||B)为 True
! 逻辑 Not 运算符。如果条件为True,则逻辑 Not 结果为False,否则为 False !(A && B)为 True

位运算符

运算符 描述 实例
& 按位与运算符”&”是双目运算符。其功能是参与运算的两数各对应的二进位相与。 A为14,B为13时,(A & B)结果为 12,二进制为 0000 1100
按位或运算符”|”是双目运算符。其功能是参与运算的两数各对应的二进位相或。 A为52,B为9时,(A | B)结果为61,二进制为 0011 1101
^ 按位异或运算符”^”是双目运算符。其功能是参与运算的两数各对应的二进位相异或,当两对应的二进制位相异或时,结果取相反值。 (A ^ B)结果为49,二进制为 0011 0001
<< 左移运算符”<<”是双目运算符。左移n位就是乘以2的n次方。其功能把”<<”左边的运算数的各二进位左移若干位,由”<<”右边的数指定移动的位数,高位丢弃,低位补 当A为60,A << 2 结果为240,二进制为 1111 0000
>> 右移运算符”>>”是双目运算符。右移n位就是乘以2的n次方。其功能把”>>”右边的运算数的各二进位右移若干位,由”>>”左边的数指定移动的位数。 当A为60,A >> 2 结果为15,二进制为 0000 1111

与其他主要编程语言的主要差异 &^ 按位置0

  1. 1 &^ 0 -- 1
  2. 1 &^ 1 -- 0
  3. 0 &^ 1 -- 0
  4. 0 &^ 0 -- 0

示例


代码示例

  1. package operator_test
  2. import "testing"
  3. const (
  4. Readable = 1 << iota
  5. Writable
  6. Executable
  7. )
  8. func TestCompareArray(t *testing.T) {
  9. a := [...]int{1, 2, 3, 4}
  10. b := [...]int{1, 2, 4, 3}
  11. //c := [...]int{1, 2, 3, 4, 5}
  12. d := [...]int{1, 2, 3, 4}
  13. t.Log(a == b)
  14. //首先呢,我们可以看见a与c编译错误,是因为它们对长度不同所导致的
  15. //t.Log(a == c)
  16. t.Log(a == d)
  17. }
  18. func TestBitClear(t *testing.T) {
  19. a := 7 //0111
  20. a = a &^ Readable
  21. t.Log(a&Readable == Readable, a&Writable == Writable, a&Executable == Executable)
  22. }

运行结果


欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739

评价

MonGoDB 学习一(包含各种花样坑)

资源链接:链接:https://pan.baidu.com/s/1xgDnP2aHW1fNN9qLAP7OtQ提取码:4zm81,安装MongoDB (传统式的下一步)这里选Cu...

GodeFirst实现外键

GodeFirst实现外键有多种方法如下方法一:通过默认名称,导航属性名称+主表主键父母表生成的效果如下:方法二:通过Foreign...

ng : 无法加载文件 C:\Users\WSJ\AppData\Roaming\npm\ng.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/Go.microsoft.com /fwlink/?LinkID=135170 中的.

错误提示:解决方法:在win10搜索那里搜索Windos PowerShell然后选择管理员身份打开,ps:一定要选择 以管理员身份运行打开...

初识Go

前言Go 是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。后台是谷歌属于出场自带BGM的语言!!!下载Go...

MonGodb HostPath PV与PVC示例

Mongodb HostPath PV与PVC示例[TOC] Persistent Volume 简介 可以做分布式存储的抽象层特点 可以对Pod进行解耦… ...

Go语言基础(一)

Go语言基础(一)[TOC] 基本程序演示 创建一个hello_word.go文件 package main //包,表明代码所在的模块(包) ...

Go语言基础(二)变量,常量以及与其他语言的差异

Go语言基础(二)变量,常量以及与其他语言的差异[TOC] 编写测试程序 注意事项 源码文件以_test结尾:xxx_test.go...

Go数据类型

Go 数据类型[TOC] 基本数据类型 bool string int int8 int16 int32 int64 uint uint8 ...

Go 在Vscode中设置测试对象有输出

Go 在Vscode中设置测试有输出[TOC] 在使用Golang进行测试方法运行的时候,发现Log输出不了任何东西,原来是在运行测试的...

Go 条件与循环

Go 条件与循环[TOC] 循环 与其他主要编程语言的差异 Go 语言仅支持循环关键字 for。可以从以下代码看出,循环时并没...

Go 数组与切片

Go 数组与切片[TOC] 数组与其他语言的区别 在 Go 中简单的定义 var arr [3]int var arr1 = [3]int{1, 2, 3} 不...

Go Map声明、元素访问与遍历

Go Map声明、元素访问与遍历[TOC] Map的声明 Map的声明相当于其他语言的键值队,通常通过map[key_type]value_type的方式...

Go Map与工厂模式,在Go语言中实现Set

Go Map与工厂模式,在Go语言中实现Set[TOC] Map与工厂模式 Map 的 value 可以是一个方法与 Go 的 Dock type 接口方式一起...

Go 字符串

Go 字符串[TOC] 字符串 string 是数据类型,不是引用类型或指针类型string 是只读的 byte slice,len 函数可以它所包含的...

Go 语言的函数

Go 语言的函数[TOC] 函数与其他语言的主要差异 可以有多个返回值所有参数都是值传递:slice,map,channel会有传引用的...
这一世以无限游戏为使命!
排名
1
文章
873
粉丝
112
评论
163
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术