go语言基础之运算符
一、运算符分类
1.1 算术运算符
|
运算符 |
术语 |
示例 |
结果 |
|
+ |
加 |
10 + 5 |
15 |
|
- |
减 |
10 - 5 |
5 |
|
* |
乘 |
10 * 5 |
50 |
|
/ |
除 |
10 / 5 |
2 |
|
% |
取模(取余) |
10 % 3 |
1 |
|
++ |
后自增,没有前自增 |
a=0; a++ |
a=1 |
|
-- |
后自减,没有前自减 |
a=2; a-- |
a=1 |
1.2 关系运算符
|
运算符 |
术语 |
示例 |
结果 |
|
== |
相等于 |
4 == 3 |
false |
|
!= |
不等于 |
4 != 3 |
true |
|
< |
小于 |
4 < 3 |
false |
|
> |
大于 |
4 > 3 |
true |
|
<= |
小于等于 |
4 <= 3 |
false |
|
>= |
大于等于 |
4 >= 1 |
true |
1.3 逻辑运算符
|
运算符 |
术语 |
示例 |
结果 |
|
! |
非 |
!a |
如果a为假,则!a为真; 如果a为真,则!a为假。 |
|
&& |
与 |
a && b |
如果a和b都为真,则结果为真,否则为假。 |
|
|| |
或 |
a || b |
如果a和b有一个为真,则结果为真,二者都为假时,结果为假。 |
示例:
package main //必须有一个main包
import "fmt"
func main() {
fmt.Println("4 > 3 结果:", 4 > 3)
fmt.Println("4 != 3 结果:", 4 != 3)
//非
fmt.Println("!(4 > 3) 结果:", !(4 > 3))
fmt.Println("!(4 != 3) 结果:", !(4 != 3))
//&& 与, 并且,左边右边都为真,结果才为真, 其它都为假
fmt.Println("true && true 结果:", true && true)
fmt.Println("true && false 结果:", true && false)
// ||, 或者, 左边右边都为假,结果才为假,其它都为真
fmt.Println("true || false 结果:", true || false)
fmt.Println("false || false 结果:", false || false)
//非0就是真,0就是假(但是go语言的bool类型和int不兼容)
//判断一个数,在0-11的范围
a := 11 //a :=8 结果:true 和 a := 11 结果:false
fmt.Println("0 <= a && a <= 10 结果为:", 0 <= a && a <= 10)
}
#执行结果:
4 > 3 结果: true
4 != 3 结果: true
!(4 > 3) 结果: false
!(4 != 3) 结果: false
true && true 结果: true
true && false 结果: false
true || false 结果: true
false || false 结果: false
0 <= a && a <= 10 结果为: false
1.4 位运算符
|
运算符 |
术语 |
说明 |
示例 |
|
& |
按位与 |
参与运算的两数各对应的二进位相与 |
60 & 13 结果为12 |
|
| |
按位或 |
参与运算的两数各对应的二进位相或 |
60 | 13 结果为61 |
|
^ |
异或 |
参与运算的两数各对应的二进位相异或,当两对应的二进位相异时,结果为1 |
60 ^ 13 结果为240 |
|
<< |
左移 |
左移n位就是乘以2的n次方。 左边丢弃,右边补0。 |
4 << 2 结果为16 |
|
>> |
右移 |
右移n位就是除以2的n次方。 右边丢弃,左边补位。 |
4 >> 2 结果为1 |
1.5 赋值运算符
|
运算符 |
说明 |
示例 |
|
= |
普通赋值 |
c = a + b 将 a + b 表达式结果赋值给 c |
|
+= |
相加后再赋值 |
c += a 等价于 c = c + a |
|
-= |
相减后再赋值 |
c -= a 等价于 c = c - a |
|
*= |
相乘后再赋值 |
c *= a 等价于 c = c * a |
|
/= |
相除后再赋值 |
c /= a 等价于 c = c / a |
|
%= |
求余后再赋值 |
c %= a 等价于 c = c % a |
|
<<= |
左移后赋值 |
c <<= 2 等价于 c = c << 2 |
|
>>= |
右移后赋值 |
c >>= 2 等价于 c = c >> 2 |
|
&= |
按位与后赋值 |
c &= 2 等价于 c = c & 2 |
|
^= |
按位异或后赋值 |
c ^= 2 等价于 c = c ^ 2 |
|
|= |
按位或后赋值 |
c |= 2 等价于 c = c | 2 |
1.6 其他运算符
|
运算符 |
术语 |
示例 |
说明 |
|
& |
取地址运算符 |
&a |
变量a的地址 |
|
* |
取值运算符 |
*a |
指针变量a所指向内存的值 |
1.7 运算符优先级
在Go语言中,一元运算符拥有最高的优先级,二元运算符的运算方向均是从左至右。
下表列出了所有运算符以及它们的优先级,由上至下代表优先级由高到低:
|
优先级 |
运算符 |
|
7 |
^ ! |
|
6 |
* / % << >> & &^ |
|
5 |
+ - | ^ |
|
4 |
== != < <= >= > |
|
3 |
<- |
|
2 |
&& |
|
1 |
|| |
示例:
10 - 2 * 8 - 4 ===> 10 - 16 -4 10 - 2 * (8 - 4) ===> 10 - 8 = 2
go语言基础之运算符的更多相关文章
- C语言基础知识-运算符与表达式
C语言基础知识-运算符与表达式 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.常用运算符分类 1>.算术运算符 用于处理四则运算. 2>.赋值运算符 用于将表达式的 ...
- GO学习-(6) Go语言基础之运算符
Go语言基础之运算符 运算符用于在程序运行时执行数学或逻辑运算. 运算符 Go 语言内置的运算符有: 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 算数运算符 运算符 描述 + 相加 - ...
- C#-语言基础+数据类型+运算符
一.C#语言基础 新建项目:文件→新建→项目→Visual C#(默认.NET Framework 4.5)→控制台应用程序 1.项目结构 (1)项目后缀 .config ——配置文件(存放配置参数文 ...
- C语言基础学习运算符-赋值运算符
简单赋值 在C语言里,运算符=并不表示相等,而是一个赋值运算符.这意味着,符号=的左边该是一个可修改的变量名,而右边是赋给该变量的值. 如下程序语句: i = i+; 在数学上,该等式无法成立.而作为 ...
- [Python学习笔记1]Python语言基础 数学运算符 字符串 列表
这个系列是我在学习Python语言的过程中记录的笔记,主要是一些知识点汇总,而非学习教程,可供有一定编程基础者参考.文中偏见和不足难以避免,仅供参考,欢迎批评指正. 本系列笔记主要参考文献是官网文档: ...
- C语言基础学习运算符-基本算术运算符
C语言中用于基本算术运算的运算符有:+,-,*,%,/.这些运算符的用法和你想像到的基本无异: 加法运算符 “+”使得它两侧的值被加到一起. 减法运算符“-”用它前面的数减去后面的数. 乘法由“*”表 ...
- C语言基础学习运算符-关系运算符
比较大小 首先,我们得先了解一下布尔类型.C语言的C99标准支持布尔类型,关键字为_Bool,用于表示逻辑值true与false.C语言用值1表示true, 用值0表示false.因此布尔类型实际上是 ...
- Java 语言基础之运算符
使用运算符之后,肯定有返回结果. 六种运算符: 算术运算符 赋值运算符 比较运算符 逻辑运算符 位运算符 三元运算符 1. 算术运算符 加(+), 减(-), 乘(*), 除(/), 取余(%), 自 ...
- 2.1 Go语言基础之运算符
运算符用于在程序运行时执行数学或逻辑运算. 一.运算符 Go 语言内置的运算符有: 1. 算术运算符 2. 关系运算符 3. 逻辑运算符 4. 位运算符 5. 赋值运算符 1.1 算数运算符 运算符 ...
随机推荐
- Window 下一台机器配置三个Tomcat实例
下面我们把配置的详细过程写在下面,以供参考:(此例以配置三个Tomcat为例) 1. 下载apache-tomcat-8.0.63,下载下来的文件为apache-tomcat-8.0.63.zip. ...
- 【WPF】设置Listview样式
<ListView Grid.Row="0" ItemsSource="{Binding Lst_bind}"> <ListView.Item ...
- phpstorm配置关联php手册
最近发现有些编辑器可以 选中函数名,通过相应的快捷键就可以调用 浏览器 打开相应 函数的 在线帮助文档. 一番查找,我终于发现 phpStorm 也有相应的功能. 一.自带功能 在编辑器中选中函数名, ...
- 转:Exploiting Electron RCE in Exodus wallet
转:https://hackernoon.com/exploiting-electron-rce-in-exodus-wallet-d9e6db13c374 Exploiting Electron R ...
- Django+Nginx+uwsgi搭建自己的博客(六)
这篇应该是2017年的最后一篇博客了,在这里首先祝大家元旦快乐! 从这篇博客开始,将会介绍Blogs App的功能实现,包括数据模型的建立.相关功能的视图函数的实现.前端页面的设计等,这意味着我们即将 ...
- zTree通过指定ID找到节点并选中
zTree = $.fn.zTree.getZTreeObj("treeDemo");//treeDemo界面中加载ztree的div var node = zTree.getNo ...
- HDU1429 胜利大逃亡 状压bfs
http://acm.hdu.edu.cn/viewcode.php?rid=22225154 因为总共a-j有10种钥匙,所以可以把有没有钥匙的状态压到一个int数里,然后dfs. 昨天状态特别不好 ...
- [转][Android] ListView中getView的原理+如何在ListView中放置多个item
ListView 和 Adapter 的基础 工作原理: ListView 针对List中每个item,要求 adapter “给我一个视图” (getView). 一个新的视图被返回并显示 如果 ...
- VK Cup 2016 - Round 1 (Div. 2 Edition) B. Bear and Displayed Friends 树状数组
B. Bear and Displayed Friends 题目连接: http://www.codeforces.com/contest/658/problem/B Description Lima ...
- hdu 1540 Tunnel Warfare 线段树 单点更新,查询区间长度,区间合并
Tunnel Warfare Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pi ...