1.算术运算符(与C一致)
+ - * / %
- /
除法注意:如果参与运算的数都是整数,那么结果会自动取整数
- ++/--
注意:在go中,++t和--是单独的语句,不是运算符,只能独立使用。错误写法如下:
var i int = 8
a := i++//错误,i++只能独立使用,不能和赋值运算符并用
++和--没有前置写法,错误写法如下:
var i int = 1
++i//错误,在golang中没有前置++,只能写成i++
- 正确写法
var a = 12
a++
a--
fmt.Println(a)//12
2.关系运算符
== != > >= < <=
3.逻辑运算符
- 拥有短路的特性
test(){
fmt.Println("test")
return true;
}
func main(){
num := 10
if num > 9 && test() {
fmt.Println("执行")
}
//test 执行
if num > 100 && test(){
fmt.Println("没执行")
}
//(短路了,没有打印)
}
4.赋值运算符
= += -= *= /= %=
- 交换两变量的值
var a = 34
var b = 10
a = a + b
b = a - b
a = a - b
fmt.Println(a,b)//10,34
5.位运算符
- &
两位均为1,结果才为1
var a = 5//101
var b = 2//010
fmt.Println("a&b=", a&b)//0
- |
两位有一个为1,结果就为1
var a = 5//101
var b = 2//010
fmt.Println("a|b=", a|b)//7
- ^
两位不一样,则为1
var a = 5//101
var b = 2//010
fmt.Println("a^b=", a^b)//7
<<
左移n位,就是乘以2的n次方(高位丢弃,低位补0)
var a = 5//101
var b = 2//010
fmt.Println("a<<b=", a<<b)//10100=>20
>>
右移n位,就是除以2的n次方
var a = 5//101
var b = 2//010
fmt.Println("a>>b=", a>>b)//1
有疑问加站长微信联系(非本文作者)