Go语言之运算符
算术运算符
package main
import "fmt"
func main() {
a := 2
b := 3
fmt.Print(a+b) // 5 加
fmt.Print("\n")
fmt.Print(a-b) // -1 减
fmt.Print("\n")
fmt.Print(a*b) // 6 乘
fmt.Print("\n")
fmt.Print(a/b) // 0 除 打印出了一个int型直接把小数舍去
fmt.Print("\n")
fmt.Print(a%b) // 3 求余
fmt.Print("\n")
a++ // 自加
fmt.Print(a) // 3
fmt.Print("\n")
b-- // 自减
fmt.Print(b) // 2
fmt.Print("\n")
}
关系运算符
package main
import "fmt"
func main() {
a := 2
b := 2
fmt.Print(a==b) // true 等于
fmt.Print("\n")
fmt.Print(a!=b) // false 不等于
fmt.Print("\n")
fmt.Print(a>b) // false 大于
fmt.Print("\n")
fmt.Print(a<b) // false 小于
fmt.Print("\n")
fmt.Print(a>=b) // true 大于等于
fmt.Print("\n")
fmt.Print(a<=b) // true 小于等于
}
逻辑运算符
&&逻辑与运算符
如果两个操作数都不为零,则条件为真。(A && B)结果为真`||逻辑或运算符
如果两个操作数中的任何-个非零,则条件变为真。(A ||B)结果为真`!逻辑非运算符
用于反转其操作数的逻辑状态。如果条件为真,则逻辑非运算符将为假。!(A && B)结果为真`package main
import "fmt"
func main() {
a := true
b := true
c := false
fmt.Print(a&&b) // true 逻辑与
fmt.Print("\n")
fmt.Print(a||b) // true 逻辑或
fmt.Print("\n")
fmt.Print(a&&c) // false
fmt.Print("\n")
fmt.Print(a||c) // true
fmt.Print("\n")
fmt.Print(!a) // false 逻辑非
}
按位运算符
& 按位与:
都为1则结果为1| 按位或:
有一个为1则结果为1^ 按位异或:
对应不同数值时结果为1<< 左移:
把数整体向左移动>> 右移:
把数整体向右移动package main
import "fmt"
func main() {
a := byte(0)
b := byte(1)
fmt.Print(a) // 0
fmt.Print("\n")
fmt.Print(b) // 1
fmt.Print("\n")
fmt.Print(a&b) // 1
fmt.Print("\n")
fmt.Print(b&b) // 1
fmt.Print("\n")
fmt.Print(a|b) // 1
fmt.Print("\n")
fmt.Print(a^b) // 1
fmt.Print("\n")
fmt.Print(a^a) // 0
fmt.Print("\n")
fmt.Print(b^b) // 0
fmt.Print("\n")
fmt.Print(b<<1) // 2
fmt.Print("\n")
fmt.Print(b>>1) // 0
}
赋值运算符
=
表达式的值赋给一个左值 C=A+B 将A+B表入式结果赋値给C+=
相加后再赋值 C+=A 等于C=C+A-=
相减后再赋值 C-=A 等于C=C-A*=
相乘后再赋值 C=A 等于C=CA/=
相除后再赋值 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