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

go语言中运算符的更多相关文章

  1. 关于C语言中运算符优先级的一次错误

    好久没碰编程了,最近有点闲,又拾起来.做了个简单的网络测试程序,测试的时候发现有条语句老是获取不到结果.如下: if(portnumber=atoi(argv[1])>65535) portnu ...

  2. 001_C语言中运算符的优先级

    总的来说就是: 1. 最高:单目运算符(() > * 解引用,&取地址,-取相反数,++等自增(或减)运算,!取反运算...); 2. 次之:双目运算符(算数运算符 > 移位运算符 ...

  3. C语言中运算符的口决

  4. C语言中的运算符

    1. 在C语言中运算符包括:算术运算符.关系运算符.赋值运算符.逻辑运算符 2.用运算符把变量.常量连接起来的式子就是表达式 3.我们阅读一个表达式,从表达式的功能和表达式的值来看 4. 算术运算符和 ...

  5. C语言中关于逗号运算符的理解

    在C语言中运算符有很多,包括算数运算符.关系运算符.赋值运算符.位运算符.逻辑运算符.三目运算符.sizeof运算符.逗号运算符等等,那今天我们就重点来给大家讨论一下关于逗号运算符的一些运算规则. 首 ...

  6. c++中运算符重载

    c++语言中运算符重载都是通过函数来实现的,所以其实质为函数重载,当c++语言原有的一个运算符被重载之后,它原来所具有的语义并没有消失,只相当于针对一个特定的类定义了一个新的运算符. <1> ...

  7. c语言中逗号运算符和逗号表达式

    原文:c语言中逗号运算符和逗号表达式 C语言提供一种特殊的运算符——逗号运算符.用它将两个表达式连接起来.如: 3+5,6+8称为逗号表达式,又称为“顺序求值运算符”.逗号表达式的一般形式为 表达式1 ...

  8. c语言中类型转换与赋值运算符、算术运算符、关系运算符、逻辑运算符。原码、反码、补码。小解。

    类型转换 自动转换 小范围的类型能够自动转换成大范围的类型.short->int->long->float->double 强制类型转换 (类型名)变量或数值 #include ...

  9. Java语言中的面向对象特性总结

    Java语言中的面向对象特性 (总结得不错) [课前思考]  1. 什么是对象?什么是类?什么是包?什么是接口?什么是内部类?  2. 面向对象编程的特性有哪三个?它们各自又有哪些特性?  3. 你知 ...

随机推荐

  1. pandas 获取列名

    df.columns.values df.columns.values.tolist()

  2. matplotlib 绘制多个图——两种方法

    import numpy as np import matplotlib.pyplot as plt #创建自变量数bai组du x= np.linspace(0,2*np.pi,500) #创建函数 ...

  3. Gradle上传依赖到私服(nexus)

    子模块配置 buildscript { repositories { mavenLocal() maven { url "http://maven.aliyun.com/nexus/cont ...

  4. vue优点

    低耦合.视图(View)可以独立于Model变化和修改,一个ViewModel可以绑定到不同的"View"上,当View变化的时候Model可以不变,当Model变化的时候View ...

  5. 【题解】「CF1352A」Sum of Round Numbers

    应该是纯模拟吧. 直接输入一个字符串,然后一位一位看,如果不是0,就 k++,并计算这个数的真实的值,最后输出就行了. #include<iostream> #include<cst ...

  6. C++笔试题续

    第一部分:C++与C语言的差异(1-18)1.C 和 C++ 中 struct 有什么区别? Protection行为 能否定义函数C 无 否,但可以有函数指针C++ 有 可以,默认是public2. ...

  7. 快速构建一个vue项目

    首先介绍一下命令行构建一个vue项目步骤: 1.下载安装node.js(直接运行安装包根据步骤安装完),打开命令行输入:node -v ,出现版本号即安装成功. 2.命令行界面输入:cnpm inst ...

  8. gnuplot添加直线和箭头

    http://blog.csdn.net/bill_chuang/article/details/18215051 6.在图中添加直线和箭头 gnuplot> set arrow from 0. ...

  9. IDEA将Java Web项目打war包

    准备工作 1.IntelliJ IDEA开发工具 2.可以正常运行的Java Web项目 打war包流程 1.使用快捷键Ctrl+Alt+Shift+s 或者 鼠标点击选中项目名按F4 打开 Proj ...

  10. Spring(一)--简介

    一.概述(什么是spring): Spring是分层的Java SE/EE应用full-stack(一站式)轻量级开源框架.他解决的是业务逻辑层和其他各层的松耦合问题,将面向接口的编程思想贯穿整个系统 ...