1.算术运算符
+ - * / % ++ --
使用细节: (1)对于"/"号,整数除和小数除的区别;
(2)++和--只能独立使用,即a=a++是不允许的;没有++a和--a;if a++ > 0也是不合法的;
2.赋值运算符
= += -= *= /= %=
<<= >>= &= ^= |=
使用特点: (1)运算顺序从右往左;
(2)赋值运算符的左边只能是变量,右边可以是表达式,变量和常量;
小例子:不用中间变量,交换两个变量的值:
package main
import (
"fmt"
)
func main() {
var num1 int = 3
var num2 int = 5
fmt.Println("num1的值是:", num1)
fmt.Println("num2的值是:", num2)
num1 = num1 + num2
fmt.Println("num1的值是:", num1)
num2 = num1 - num2 //相当于num2=num1+num2-num2 ==>num2=num1
fmt.Println("num2的值是:", num2)
num1 = num1 - num2 //相当于num1=num1+num2-num1 ==>num1=num2
fmt.Println("num1的值是:", num1)
fmt.Println("num2的值是:", num2)
}
我这个go版本可以直接使用和python一样语法:即num1, num2 = num2, num1
3.比较运算符
== != < > <= >=
4.逻辑运算符
&& 逻辑与:如果两边都为true,则返回true,否则返回false
|| 逻辑或:如果两边至少有一个true,则返回true,否则返回false
| 逻辑非:如果和条件相反的布尔值
注意:逻辑与第一个条件是false,第二个条件就不会判断;逻辑或如果第一个条件是true,则第二个条件不会被判断;
5.位运算符
& | ^ << >>
6.其他运算符
& *
golang不支持三元运算符,只能用if else进行实现;
var i int = 10
var j int = 20
var n int
if i > j {
n = i
} else {
n = j
}
运算符的优先级:
(1)只有单目运算符、赋值运算符是从右向左的;
以下优先级依次降低: