编程笔记 Golang基础 019 运算符
- 一、运算符
-
- [1. 算术运算符](#1. 算术运算符)
- [2. 关系运算符](#2. 关系运算符)
- [3. 逻辑运算符](#3. 逻辑运算符)
- [4. 位运算符](#4. 位运算符)
- [5. 赋值运算符](#5. 赋值运算符)
- [6. 特殊运算符](#6. 特殊运算符)
- 二、运算的重要作用
- 总结
在Go语言中,运算符是用于执行各种算术、逻辑和位操作的关键字或符号。运算符在编写代码的过程中起到了构建表达式、实现逻辑控制、处理数据以及进行底层操作的关键作用,使程序员能够以简洁而高效的方式描述复杂的数据处理流程和控制逻辑。
一、运算符
以下是对Go语言中主要运算符的详细说明:
1. 算术运算符
+
:加法运算符,用于将两个数值相加。-
:减法运算符,用于从一个数中减去另一个数。*
:乘法运算符,用于将两个数相乘。/
:除法运算符,进行常规的除法计算(整数之间做除法会得到整数结果,不保留小数部分)。%
:取模运算符(求余数),返回两个整数相除后的余数。
2. 关系运算符
==
:等于运算符,检查两个值是否相等。!=
:不等于运算符,检查两个值是否不相等。<
:小于运算符,判断左操作数是否小于右操作数。>
:大于运算符,判断左操作数是否大于右操作数。<=
:小于等于运算符,判断左操作数是否小于或等于右操作数。>=
:大于等于运算符,判断左操作数是否大于或等于右操作数。
3. 逻辑运算符
&&
:逻辑与运算符,两边都为真时结果才为真。||
:逻辑或运算符,两边至少有一个为真时结果为真。!
:逻辑非运算符,对布尔值取反。
4. 位运算符
&
:按位与运算符,对应二进制位均为1时结果位才为1。|
:按位或运算符,对应二进制位只要有1则结果位为1。^
:按位异或运算符,对应二进制位不同时结果位为1。<<
:左移运算符,将一个数的所有二进制位向左移动指定次数,空出的高位补0。>>
:右移运算符,将一个数的所有二进制位向右移动指定次数,对于无符号数空出低位补0,对于有符号数移动规则取决于具体实现(通常采用算术右移,即空出的低位补符号位)。
5. 赋值运算符
=
:基本赋值运算符,用于将右侧的值赋给左侧变量。+=
、-=
,*=
,/=
,%=
:复合赋值运算符,分别相当于x = x + y
、x = x - y
等形式。&=
,|=
,^=
,<<=
,>>=
:位运算的复合赋值运算符。
6. 特殊运算符
++
和--
:虽然Go语言中没有前置递增/递减运算符(如 C/C++ 中的++x
或--x
),但可以使用后置递增/递减表达式x++
和x--
,不过需要注意的是,在Go中这些表达式不能用作独立语句之外的操作数(例如不能直接参与其他运算)。
以上运算符在Go语言中广泛应用于各种条件分支、循环、表达式计算以及数据处理场景中。
二、运算的重要作用
运算符在编程语言中扮演着至关重要的角色,它们的主要作用包括:
-
执行算术操作:
- 算术运算符(如 +、-、*、/ 和 %)允许程序员执行基本的数学计算,例如加法、减法、乘法、除法和求余数。这对于处理数值型数据至关重要,无论是简单的计算还是复杂的算法实现。
-
比较值:
- 关系运算符(如 ==、!=、<、>、<= 和 >=)用于比较两个表达式的值,判断它们之间的大小关系或是否相等。这些比较结果通常作为条件控制结构(如 if 语句、switch 语句、for 循环条件等)的基础。
-
逻辑推理:
- 逻辑运算符(如 &&、|| 和 !)使得程序能够根据多个条件进行逻辑推理,确定整个表达式的结果是真还是假。逻辑运算符常用于构造复合条件,确保程序按预期逻辑路径执行。
-
位操作:
- 位运算符(如 &、|、^、<<、>>)用来直接对二进制位进行操作,这是低级别硬件控制、优化内存使用、加密算法等领域必不可少的工具。
-
赋值与更新变量:
- 赋值运算符(=)将一个值赋予变量。此外还有复合赋值运算符(+=、-=、*= 等),它们不仅将值赋予变量,还在此过程中执行了相应的算术操作。
-
指针操作:
- 在Go语言中,指针运算符(& 和 *)分别用于获取变量的内存地址(取址运算符)和通过地址访问存储在该地址处的值(解引用运算符)。
-
类型转换:
- 尽管不是严格意义上的运算符,但类型转换也是一种特殊的操作,允许将一个类型的值转换为另一个类型,这在需要不同数据类型之间交互或者强制满足特定接口要求时非常重要。
总结
综上所述,运算符在编写代码的过程中起到了构建表达式、实现逻辑控制、处理数据以及进行底层操作的关键作用,使程序员能够以简洁而高效的方式描述复杂的数据处理流程和控制逻辑。