Go的运算符
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 |
2 关系运算符
运算符 |
术语 |
示例 |
结果 |
== |
相等于 |
4 == 3 |
false |
!= |
不等于 |
4 != 3 |
true |
< |
小于 |
4 < 3 |
false |
> |
大于 |
4 > 3 |
true |
<= |
小于等于 |
4 <= 3 |
false |
>= |
大于等于 |
4 >= 1 |
true |
3 逻辑运算符
运算符 |
术语 |
示例 |
结果 |
! |
非 |
!a |
如果a为假,则!a为真; 如果a为真,则!a为假。 |
&& |
与 |
a && b |
如果a和b都为真,则结果为真,否则为假。 |
|| |
或 |
a || b |
如果a和b有一个为真,则结果为真,二者都为假时,结果为假。 |
package main import "fmt" func main(){
fmt.Println("4>3 结果:", >)
fmt.Println("4!=3 结果", !=) fmt.Println("!(4>3) 结果:", !(>))
fmt.Println("!(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) a :=
// fmt.Println("0<a<=10 结果为:", 0<a<=10) //go中不支持这种连写,python支持
fmt.Println("0<a && a <=10 的结果:", <a && a <=)
}
4 位运算符
运算符 |
术语 |
说明 |
示例 |
& |
按位与 |
参与运算的两数各对应的二进位相与(两位都为1则为1) |
60 & 13 结果为12 |
| |
按位或 |
参与运算的两数各对应的二进位相或(两位有一个为1就为1) |
60 | 13 结果为61 |
^ |
异或 |
参与运算的两数各对应的二进位相异或,当两对应的二进位相异时,结果为1(两位不一样则为1) |
60 ^ 13 结果为240 |
<< |
左移 |
左移n位就是乘以2的n次方。 |
4 << 2 结果为16 |
>> |
右移 |
右移n位就是除以2的n次方。 |
4 >> 2 结果为1 |
//权限设计 --- r
--- w
--- x | = //增加权限
& = //验证权限
^ = // 删除权限
const (
_ = iota
KB = << ( * iota)
MB = << ( * iota)
GB = << ( * iota)
TB = << ( * iota)
PB = << ( * iota)
)
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 |
6 其他运算符
运算符 |
术语 |
示例 |
说明 |
& |
取地址运算符 |
&a |
变量a的地址 |
* |
取值运算符 |
*a |
指针变量a所指向内存的值 |
7 运算符优先级
在Go语言中,一元运算符拥有最高的优先级,二元运算符的运算方向均是从左至右。
下表列出了所有运算符以及它们的优先级,由上至下代表优先级由高到低:
优先级 |
运算符 |
7 |
^ ! |
6 |
* / % << >> & &^ |
5 |
+ - | ^ |
4 |
== != < <= >= > |
3 |
<- |
2 |
&& |
1 |
|| |
Go的运算符的更多相关文章
- shell运算符
原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最常用. expr 是一款表达式计算工具,使用它能完成表达式的求值操作. #!/bin/bash v ...
- SQL Server-聚焦APPLY运算符(二十七)
前言 其实有些新的特性在SQL Server早就已经出现过,但是若非系统的去学习数据库你会发现在实际项目中别人的SQL其实是比较复杂的,其实利用新的SQL Server语法会更加方便和简洁,从本节开始 ...
- java中的移位运算符:<<,>>,>>>总结
java中有三种移位运算符 << : 左移运算符,num << 1,相当于num乘以2 >> : 右移运算符,num >& ...
- 我的MYSQL学习心得(五) 运算符
我的MYSQL学习心得(五) 运算符 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据 ...
- .NET 基础 一步步 一幕幕[运算符、占位符、转义符]
运算符.占位符.转义符 好吧,在五局全胜之后,终于升到了三个钻,距离一个星星还有一大段距离,忽然想起来今天的博客还没写,果断坑队友,来写博客了....感觉以后还是每天更新一篇比较好.要不晚上就该熬 ...
- ECMASCript2015 提案 stage-3的对象展开运算符
看源码时看到如下的代码 export default { //通过mapActions将actions映射到methods里 methods: { ...mapActions([ 'updateSta ...
- JavaScript权威设计--JavaScript表达式与运算符,语句(简要学习笔记六)
1.delete是一元操作符,用来删除对象属性或者元素. var a={ x:1, y:2 } delete a.x; //删除x属性 “x”in a //false:a对象中已经不存在x属性 ale ...
- JavaScript权威设计--JavaScript表达式与运算符(简要学习笔记五)
1.3种原始表达式 1.直接量: 1.23 //数字直接量 “hello” //字符串直接量 ...
- LINQ to SQL语句(18)之运算符转换
运算符转换 1.AsEnumerable:将类型转换为泛型 IEnumerable 使用 AsEnumerable<TSource> 可返回类型化为泛型 IEnumerable 的参数.在 ...
- El表达式的关系运算符
El表达式的关系运算符: == 对应 eq != 对应 ne > 对应 gt < 对应 It
随机推荐
- 超强的Lambda Stream流操作
原文:https://www.cnblogs.com/niumoo/p/11880172.html 在使用 Stream 流操作之前你应该先了解 Lambda 相关知识,如果还不了解,可以参考之前文章 ...
- WPF系列 —— 控件添加依赖属性(转)
WPF系列 —— 控件添加依赖属性 依赖属性的概念,用途 ,如何新建与使用.本文用做一个自定义TimePicker控件来演示WPF的依赖属性的简单应用. 先上TimePicker的一个效果图. 概念 ...
- linux 文件上传 linux服务器
1.Linux下目录复制:本机->远程服务器 1 2 scp -r /home/shaoxiaohu/test1 zhidao@192.168.0.1:/home/test2 #test1 ...
- 201871010107-公海瑜《面向对象程序设计(Java)》第四周学习总结
201871010107-公海瑜<面向对象程序设计(Java)>第四周学习总结 项目 ...
- flask实战-个人博客-编写博客前台
编写博客前台 博客前台需要开放给所有用户,这里包括显示文章列表.博客信息.文章内容和评论等功能功能. 分页显示文章列表 为了在主页显示文章列表,我们要先在渲染主页模板的index视图的数据库中获取所有 ...
- JMeter基础【第三篇】JMeter5.1元件作用域及执行顺序
执行顺序,大家可以实践验证,加深印象. 最后,给大家说一个万能且保险的方法:放到对应的取样器下面即可.
- 12-赵志勇机器学习-Label_Propagation
(草稿) 过程: 1. 初始化所有节点的 labels 成唯一的值: 2. 对每个节点,将 label 更新为和其相连的所有节点中,标签最多的 节点的label: 2. 初始化情况下,假如所有相连的节 ...
- python语言(六)mock接口开发、发邮件、写日志、新Excel操作
一.urllib模块 urllib模块是一个标准模块,直接import urllib即可,在python3里面只有urllib模块,在python2里面有urllib模块和urllib2模块. url ...
- java 监控文件夹 WatchService
原文链接 :http://blog.csdn.net/lirx_tech/article/details/51425364 public class WacthFileUtil { public st ...
- 淘宝IP地址库获取到省市IP地址
http://ip.aliyun.com/index.html https://ispip.clang.cn/ https://github.com/Pingze-github/local-ips 1 ...