05 Golang内置的运算符


本文摘自网络,作者,侵删。

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

本文来自:简书

感谢作者:learninginto

查看原文:05 Golang内置的运算符

相关阅读 >>

Go 语言中的一些非常规优化

Golang吉祥物是啥?

Golang 架构设计原则 接口隔离原则

大型迷惑现场之[]*t是什么?*[]t是什么?*[]*t又是什么?

linux怎么安装Golang和dep(附错两个误解决方法)

Go link

Golang程序设计——函数

如何采用Go语言对象存储解冻文件?

Golang iota从几开始

Go cassandra 示例2

更多相关阅读请进入《Go》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...