05 Golang内置的运算符

learninginto · · 458 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

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大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

458 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传