05 Golang内置的运算符

时间:2021-6-7 作者:qvyue
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("a20
  • >>

右移n位,就是除以2的n次方

var a = 5//101
var b = 2//010
fmt.Println("a>>b=", a>>b)//1
声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:qvyue@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。