
7.运算符
运算符
1.算术运算符
下表列出了所有Go语言的算术运算符. 假定A值为10, B值为20
运算符 | 描述 | 运算 | 输出结果 |
---|---|---|---|
+ | 相加 | A + B | 30 |
- | 相减 | A - B | -10 |
* | 相乘 | A * B | 200 |
/ | 相除 | B / A | 2 |
% | 求余 | B % A | 0 |
++ | 自增 | A++ | 11 |
-- | 自减 | A-- | 9 |
package main
import "fmt"
func main() {
var a int = 10
var b int = 3
//+ - * / % ++ --
fmt.Println(a + b)
fmt.Println(a - b)
fmt.Println(a * b)
fmt.Println(a % b)
a++
fmt.Println(a)
a--
fmt.Println(a)
}
2.关系运算符
下表列出了所有Go语言的关系运算符. 假定A值为10, B值为20.
运算符 | 描述 | 实例 |
---|---|---|
== | 检查两个值是否相等, 如果相等返回true , 否则返回false | (A==B)为false |
!= | 检查两个值是否不相等, 如果不相等返回true , 否则返回false | (A!=B)为true |
> | 检查左边值是否大于右边值, 如果是返回true 否则返回false | (A>B)为false |
< | 检查左边值是否小于右边值,如果是返回true 否则返回false | (A<B)为true |
>= | 检查左边值是否大于右边值, 如果是返回true 否则返回false | (A>=B)为false |
<= | 检查左边值是否小于等于右边值, 如果返回true 否则返回false | (A<=B)为true |
package main
import "fmt"
func main() {
var a int = 11
var b int = 10
//关系运算符
fmt.Println(a == b)
fmt.Println(a != b)
fmt.Println(a > b)
fmt.Println(a < b)
fmt.Println(a >= b)
fmt.Println(a <= b)
}
3.逻辑运算符
下表列出了所有Go语言的逻辑运算符. 假定A值为true , B值为false
运算符 | 描述 | 实例 |
---|---|---|
&& | 逻辑AND运算符. 如果两边的操作数都是true,则条件为true, 否则为false | (A && B)为false |
|| | 逻辑OR运算符. 如果两边的操作数有一个true, 则条件为true, 否则为false | (A||B)为true |
! | 逻辑NOT运算符. 如果条件为true, 则逻辑NOT条件false, 否则为true | !(A&&B)为true |
package main
import "fmt"
func main() {
var a bool = true
var b bool = false
//逻辑与 && 与, 我与你, 我和你都要满足一个结果, 才执行 和、并且
//a 和 b 都为真的时候, 结果为真, true, 只要有一个结果为假, 结果就为假
// 都为真, 结果才为真, 否则就是假
if a && b {
fmt.Println(a && b)
}
fmt.Println(a && b)
//逻辑 || 或, 我或者你,其中一个满足就ok
// a||b只要有一个为真, 结果就是真, 只有全是false的时候,才会返回真
fmt.Println(a || b)
// 逻辑非 ! !a 取反 如果为真,结果就为假,取反
fmt.Println(!a)
fmt.Println(!b)
}
4.位运算符
Go语言支持的位运算符如下表所示, 假定A为60, B为13
运算符 | 描述 | 实例 |
---|---|---|
& | 按位与运算符"&"是双目运算符, 都是1结果为1,否则是0 | (A&B)结果为12,二进制位0000 1100 |
| | 按位或运算符"|"是双目运算符,都是0结果为0,否则是1 | (A|B)结果为61,二进制位0011 1101 |
^ | 按位异或运算符"^"是双目运算符, 不同为1,相同为0 | (A^B)结果为49,二进制为0011 0001 |
&^ | 位清空, a&^b, 对于b上的每个数值,结果为0,则取a对于位上的数值, 结果为1,则取0 | (A&^B)结果为48,二进制位0011 0000 |
<< | 左移运算符"<<"是双目运算符,左移n位就是乘以2的n次方. 其功能把"<<"左边的运算数的各二进制全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0 | A<<2 结果为240,二进制位1111 0000 |
>> | 右移运算符">>"是双目运算符,右移n位就是除以2的n次方,其功能是吧">>"左边的运算数各二进制位全部右移若干位,">>"右边的数指定移动的位数 | A>>2结果为15, 二进制为0000 1111 |
5.赋值运算符
下表列出了所有Go语言的赋值运算符
运算符 | 描述 | 实例 |
---|---|---|
= | 简单的赋值运算符, 讲一个表达式的值赋给一个左值 | 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.其他运算符
下表列出了Go语言的其他运算符
运算符 | 描述 | 实例 |
---|---|---|
& | 返回变量存储地址 | &a;将给出变量的实际地址 |
* | 指针变量 | *a;是一个指针变量 |
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果