首页 技术 正文
技术 2022年11月14日
0 收藏 886 点赞 5,020 浏览 1640 个字

Go语言学习笔记(运算符)-day01

go语言中与其他语言一样,存在多种运算符,下表列出了go语言中的运算符类型

算数运算符

关系运算符

逻辑运算符

位运算符

赋值运算符

算数运算符

运算符 描述
+ 相加
相减
* 相乘
/ 相除
% 取余
a := 10
b := 20
fmt.Println(a + b) // 相加
fmt.Println(a - b) // 相减
fmt.Println(a * b) // 相乘
fmt.Println(a / b) // 相除
fmt.Println(a % b) // 取余

关系运算符

关系运算符,只返回true和false,成立则返回true,不成立则返回false

运算符 描述
> 大于
< 小于
== 等于
>= 大于等于
<= 小于等于
!= 不等于
a := 10
b := 20
fmt.Println(a > b) //大于
fmt.Println(a > b) //小于
fmt.Println(a == b) //等于
fmt.Println(a >= b) //大于等于
fmt.Println(a <= b) //小于等于
fmt.Println(a != b) //不等于

逻辑运算符

运算符 描述
&& 逻辑 AND 运算符。 如果两边的操作数都是 True,则为 True,否则为 False。
|| 逻辑 OR 运算符。 如果两边的操作数有一个 True,则为 True,否则为 False。
! 逻辑 NOT 运算符。 如果条件为 True,则为 False,否则为 True。
// 逻辑与和逻辑或的应用
var a int = 18
var b int = 60
if a >= 18 && b <=60{
fmt.Println("苦逼干活")
}else if a < 18 || b>=60{
fmt.Println("不用干活")
}
// 逻辑非的应用
isChina := false
fmt.Println(isChina) //结果是false
fmt.Println(!isChina) //结果是true

位运算符

运算符 描述
& 按位与,两个都为1则值为1,否则值为0
| 按位与,两个有一个为1则值为1,否则值为0
^ 参与运算的两数各对应的二进位相异或,当两对应的二进位相异时,结果为1。
(两位不一样则为1)
<< 左移n位就是乘以2的n次方。 “a<<b”是把a的各二进位全部左移b位,高位丢弃,低位补0。
>> 右移n位就是除以2的n次方。 “a>>b”是把a的各二进位全部右移b位。
// 按位与
a := 10
b := 2
fmt.Println(a & b)
/* 把a转换成2进制是1010 b转换位2进制是10
10 1010
2 10
010
*/
// 按位或
a := 10
b := 2
fmt.Println(a | b)
/* 把a转换成2进制是1010 b转换位2进制是10
10 1010
2 10
1010
*/
// 按位异或
a := 10
b := 11
fmt.Println(a ^ b)
/* 把a转换成2进制是1010 b转换位2进制是1011
10 1010
11 1011
0001
*/
//按位向左移动
a := 10
b := 11
fmt.Println(a << b) // 将a转换位二进制后向左移动11位
/* 把a转换成2进制是1010
10 1010
向左移动十一位 101000000000000
*/
//按位向右移动
a := 10
b := 1
fmt.Println(a >> b) // 将a转换位二进制后向右移动1位 向右移动1位是在原来的基础上减少1位
/* 把a转换成2进制是1010
10 1010
向左移动一位 101
*/

赋值运算符

运算符 描述
= 变量赋值的正常符号
+= 先进行加法运算在进行赋值
-+ 先进行减法运算在进行赋值
*= 先进行乘法运算在进行赋值
/= 先进行除法运算在进行赋值
%= 先进行取余运算在进行赋值
&= 先进性按位与运算在赋值
|= 先进行按位或运算在赋值
^= 先在行按位异或运算在赋值
>>= 先按照向左按位移动运算在赋值
<<= 先按照向右按位移动运算在赋值
// 赋值运算符
a := 10
b := 20
a += b // a = a + b
a -= b // a = a - b
a *= b // a = a * b
a /= b // a = a / b
a %= b // a = a % b
a &= b // a = a & b
a |= b // a = a | b
a ^= b // a = a ^ b
a >>= b // a = a >> b
a <<= b // a = a << b
下一篇: ethernet
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,983
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,500
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,344
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,127
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,761
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,838