golang 运算符

本文详细介绍了Go语言中的各种运算符,包括算术运算符如加减乘除、关系运算符进行比较、逻辑运算符处理真假判断、位运算符进行二进制操作,以及赋值运算符和特殊运算符的用法和优先级。通过实例演示了这些运算符在程序中的应用。
摘要由CSDN通过智能技术生成

简介

运算符用于在程序运行时执行数学或逻辑运算。

Go 语言内置的运算符有:

  • 算术运算符
  • 关系运算符
  • 逻辑运算符
  • 位运算符
  • 赋值运算符
  • 其他运算符

算术运算符

运算符描述
+相加
-相减
*相乘
/相除(保留整数)
%求余
// /有浮点型参与运算时会保留小数,10.0/4 结果为2.5
A,B := 10,20
fmt.Println(A+B)  //30
fmt.Println(A-B)  //-10
fmt.Println(A*B)  //200
fmt.Println(B/A)  //2
fmt.Println(B%A)  //0
fmt.Println(float64(A)/4) //2.5

关系运算符

运算符描述
==检查两个值是否相等,如果相等返回 true否则返回 false。
!=检查两个值是否不相等,如果不相等返回 true否则返回 false。
>检查左边值是否大于右边值,如果是返回 true否则返回 false。
<检查左边值是否小于右边值,如果是返回 true否则返回 false。
>=检查左边值是否大于等于右边值,如果是返回 true否则返回 false。
<=检查左边值是否小于等于右边值,如果是返回 true否则返回 false。
A := 10
B := 20
fmt.Println(A==B) // false
fmt.Println(A!=B) // true
fmt.Println(A>B)  // false
fmt.Println(A<B)  // true
fmt.Println(A>=B) // false
fmt.Println(A<=B) // true

逻辑运算符

运算符描述
&&逻辑与运算符。 如果两边的操作数都是 true,则条件 true,否则为 false。
||逻辑或运算符。 如果两边的操作数有一个 true,则条件 true,否则为 false。
!逻辑非运算符。 如果条件为 true,则逻辑 NOT 条件 false,否则为 true。
// 短路现象:对于&&运算符,左边的为false,右边的就不运行。对于||运算符,左边的为true,右边的就不运行
A := true
B := false
fmt.Println(A && B) // false
fmt.Println(A || B) // true
fmt.Println(!(A && B) // true

位运算符

运算符描述
&按位与运算符"&"是双目运算符。 其功能是参与运算的两数各对应的二进位相与。
|按位或运算符"|"是双目运算符。 其功能是参与运算的两数各对应的二进位相或
^按位异或运算符"^"是双目运算符。 其功能是参与运算的两数各对应的二进位相异或,当两对应的二进位相异时,结果为1。
<<左移运算符"<<“是双目运算符。左移n位就是乘以2的n次方。 其功能把”<<“左边的运算数的各二进位全部左移若干位,由”<<"右边的数指定移动的位数,高位丢弃,低位补0
>>右移运算符">>“是双目运算符。右移n位就是除以2的n次方。 其功能是把”>>“左边的运算数的各二进位全部右移若干位,”>>"右边的数指定移动的位数,低位丢弃,高位补符号位。
A,B = 60,13    // 0b00111100  ob00001101 
fmt.Println(A&B) //12  0b0000 1100
fmt.Println(A|B) //61  0b0011 1101
fmt.Println(A^B) //49  0b0011 0001
fmt.Println(A<<2)//240 0b1111 0000
fmt.Println(A>>2)//15  0b0000 1111

赋值运算符

运算符描述实例
=简单的赋值运算符,将一个表达式的值赋给一个左值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
A,B = 60,13
var C int
C = A+B
fmt.Println(C)   // 73
C += A
fmt.Println(C)   // 133
C -= A
fmt.Println(C)   // 73
C *= A
fmt.Println(C)   //4380
C /= A
fmt.Println(C)   //73
C %= A
fmt.Println(C)   //13
C <<= 2
fmt.Println(C)   //52
C >>= 2
fmt.Println(C)   //13
C &= 2
fmt.Println(C)   //0
C ^= 2
fmt.Println(C)   //2
C |= 2
fmt.Println(C)   //2

其他运算符

运算符描述
&返回变量存储地址
*指针变量
++自增
自减
+字符串拼接
//**自增和自减必须独立使用**,不能赋值给其他变量。
A := 10
ptr := &A
fmt.Println("&A *(&A):",ptr,*ptr)  // oxcooooac0f8. 10

A++               // 没有--A
fmt.Println(A)    //11
A--               // 没有++A
fmt.Println(A)    //10

fmt.Println("hello"+"world" ) //"helloworld"

优先级

优先级(值大,优先级高)运算符
6(),++,–
5*, /, %, <<, >>, &
4+,-, |, ^
3==, !=, <, <=, >, >=
2&&
1||
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mars'Ares

请我喝杯咖啡吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值