05 Golang内置的运算符

2021-03-20  本文已影响0人  learninginto
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
上一篇下一篇

猜你喜欢

热点阅读