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次方。
“a<<b”是把a的各二进位全部左移b位,高位丢弃,低位补0。

4 << 2 结果为16

>>

右移

右移n位就是除以2的n次方。
“a>>b”是把a的各二进位全部右移b位。

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的运算符的更多相关文章

  1. shell运算符

    原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最常用. expr 是一款表达式计算工具,使用它能完成表达式的求值操作. #!/bin/bash v ...

  2. SQL Server-聚焦APPLY运算符(二十七)

    前言 其实有些新的特性在SQL Server早就已经出现过,但是若非系统的去学习数据库你会发现在实际项目中别人的SQL其实是比较复杂的,其实利用新的SQL Server语法会更加方便和简洁,从本节开始 ...

  3. java中的移位运算符:<<,>>,>>>总结

    java中有三种移位运算符 <<      :     左移运算符,num << 1,相当于num乘以2 >>      :     右移运算符,num >& ...

  4. 我的MYSQL学习心得(五) 运算符

    我的MYSQL学习心得(五) 运算符 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据 ...

  5. .NET 基础 一步步 一幕幕[运算符、占位符、转义符]

      运算符.占位符.转义符 好吧,在五局全胜之后,终于升到了三个钻,距离一个星星还有一大段距离,忽然想起来今天的博客还没写,果断坑队友,来写博客了....感觉以后还是每天更新一篇比较好.要不晚上就该熬 ...

  6. ECMASCript2015 提案 stage-3的对象展开运算符

    看源码时看到如下的代码 export default { //通过mapActions将actions映射到methods里 methods: { ...mapActions([ 'updateSta ...

  7. JavaScript权威设计--JavaScript表达式与运算符,语句(简要学习笔记六)

    1.delete是一元操作符,用来删除对象属性或者元素. var a={ x:1, y:2 } delete a.x; //删除x属性 “x”in a //false:a对象中已经不存在x属性 ale ...

  8. JavaScript权威设计--JavaScript表达式与运算符(简要学习笔记五)

    1.3种原始表达式     1.直接量:    1.23    //数字直接量                         “hello”    //字符串直接量                 ...

  9. LINQ to SQL语句(18)之运算符转换

    运算符转换 1.AsEnumerable:将类型转换为泛型 IEnumerable 使用 AsEnumerable<TSource> 可返回类型化为泛型 IEnumerable 的参数.在 ...

  10. El表达式的关系运算符

    El表达式的关系运算符: ==  对应  eq !=   对应  ne >    对应  gt <    对应  It

随机推荐

  1. 201871010134-周英杰《面向对象程序设计(Java)》第四周学习总结

    201871010134-周英杰<面向对象程序设计(Java)>第四周学习总结 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这 ...

  2. adb 命令之push pull

    C:\Users\ceshi>adb pull /storage/emulated/legacy/00001.vcf D:/E:\eclipse\Demo1>adb push E:\ecl ...

  3. 网站调试时记得关闭火狐adblock插件

    由于特殊需要,xmyanke需要在网站右侧添加一个弹窗,第一个网站加上代码后可以正常显示,第二个网站却怎么也看不到图片,同样的安装方法为什么差别那么大呢?重新复制代码还是不行,再试一遍,依然如此,wi ...

  4. 模拟赛T2 线段树优化建图+tarjan+拓扑排序

    然而这只是 70pts 的部分分,考场上没想到满分怎么做(现在也不会) code: #include <cstdio> #include <string> #include & ...

  5. Spring Boot 知识笔记(servlet、监听器、拦截器)

    一.通过注解自定义servlet package net.Eleven.demo.servlet; import javax.servlet.ServletException; import java ...

  6. es6引用模块import后面加上花括号{}和不加花括号的区别

    在使用import语法引用模块时,如何正确使用{} 例如:有两个文件,home.js.user.js 当需要在home.js中引入user.js的时候 //home.js import user fr ...

  7. tcp & 长连接 短连接

    参考文档: tcp协议 http://blog.chinaunix.net/uid-26833883-id-3627644.html 长连接和短连接 http://blog.csdn.net/free ...

  8. 一个web请求的全过程

    参考文档:http://www.mamicode.com/info-detail-1357508.html 名词解释DNS: DNS(Domain Name System,域名系统),因特网上作为域名 ...

  9. C++ getline()的两种用法

    getline():用于读入一整行的数据.在C++中,有两种getline函数.第一种定义在头文件<istream>中,是istream类的成员函数:第二种定义在头文件<string ...

  10. Maven ------ 了解与安装

    1.什么是Maven Maven :项目对象模型(POM),可以通过一段描述信息来管理项目的构建,报告和文档的项目管理工具软件, maven 来自犹太语意为知识的积累,为了在项目中简化构建过程,最直观 ...