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 算数运算符 运算符 ...
随机推荐
- Java I/O学习
转载: Java I/O学习 一.Java I/O类结构以及流的基本概念 在阅读Java I/O的实例之前我们必须清楚一些概念,我们先看看Java I/O的类结构图: Java I/O主要以流的形式进 ...
- C# 字符串提取数字
转自:http://www.cnblogs.com/dolphin-gjh/p/6121792.html 一.使用正则表达式 1 string str = "sztq数字提取123sztq数 ...
- 【C#】编码史记
计算机中的字是如何处理的? 如果你用放大镜看一下,可以看出屏幕上的字是由一个一个的像素点组成的,每一个字符用一组像素点拼接出来,这些像素点组成一幅图像,变成了我们的文字,计算机又是如何将我们的文字保存 ...
- 559. N叉树的最大深度
给定一个 N 叉树,找到其最大深度. 最大深度是指从根节点到最远叶子节点的最长路径上的节点总数. 例如,给定一个 3叉树 : 我们应返回其最大深度,3. 说明: 树的深度不会超过 1000. 树的节点 ...
- Building Robust and Flexible Event System in Unity3D
Building Robust and Flexible Event System in Unity3D 1. Prerequisites 1.1 Observer Pattern According ...
- ZXing.Net.Mobile无法识别较大的条码
ZXing.Net.Mobile无法识别较大的条码 在Xamarin项目中,使用ZXing.Net.Mobile实现条码扫描时,可能会出现无法顺利识别较大的条码,而可以正常识别较小的条码.这是由于ZX ...
- 交叉编译OpenSSL
<openssl简介> SSL是Secure Sockets Layer(安全套接层协议)的缩写,可以在Internet上提供秘密性传输.Netscape公司在推出第一个Web浏览 ...
- shell中的条件判断if和测试
(一)条件判断 if 中-z 到 -d 的意思 [ -a file ] 若file存在,则为真. [ -b file ] 若file存在且是一个块特殊文件,则为真. [ -c file ] 若file ...
- 【BZOJ 4665】 4665: 小w的喜糖 (DP+容斥)
4665: 小w的喜糖 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 94 Solved: 53 Description 废话不多说,反正小w要发喜 ...
- 【51Nod 1238】最小公倍数之和 V3
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1238 设\(A(n)=\sum\limits_{i=1}^n\frac{ ...