Go语言运算符

Posted Go程序员开发

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Go语言运算符相关的知识,希望对你有一定的参考价值。

Go语言运算符

运算符用于在程序运行时执行数学或逻辑运算。

Go 语言内置的运算符有:算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符、其他运算符。

算术运算符

运算符 描述

+

相加

-

相减

*

相乘

/

相除

%

求余

++

自增

--

自减

关系运算符

运算符 描述

==

检查两个值是否相等,如果相等返回 True 否则返回 False。

!=

检查两个值是否不相等,如果不相等返回 True 否则返回 False。

>

检查左边值是否大于右边值,如果是返回 True 否则返回 False。

<

检查左边值是否小于右边值,如果是返回 True 否则返回 False。

>=

检查左边值是否大于等于右边值,如果是返回 True 否则返回 False。

<=

检查左边值是否小于等于右边值,如果是返回 True 否则返回 False。

逻辑运算符

运算符 描述

&&

逻辑 AND 运算符。 如果两边的操作数都是 True,则条件 True,否则为 False。

||

逻辑 OR 运算符。 如果两边的操作数有一个 True,则条件 True,否则为 False。

!

逻辑 NOT 运算符。 如果条件为 True,则逻辑 NOT 条件 False,否则为 True。

位运算符

运算符 描述

&

按位与运算符"&"是双目运算符。 其功能是参与运算的两数各对应的二进位相与。

|

按位或运算符"|"是双目运算符。 其功能是参与运算的两数各对应的二进位相或。

^

按位异或运算符"^"是双目运算符。 其功能是参与运算的两数各对应的二进位相异或,当两对应的二进位相异时,结果为1。

<<

左移运算符"<<"是双目运算符。左移n位就是乘以2的n次方。 其功能把"<<"左边的运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0。

>>

右移运算符">>"是双目运算符。右移n位就是除以2的n次方。 其功能是把">>"左边的运算数的各二进位全部右移若干位,">>"右边的数指定移动的位数。

赋值运算符

运算符 描述

=

简单的赋值运算符,将一个表达式的值赋给一个左值

+=

相加后再赋值

-=

相减后再赋值

*=

相乘后再赋值

/=

相除后再赋值

%=

求余后再赋值

<<=

左移后赋值

>>=

右移后赋值

&=

按位与后赋值

^=

按位异或后赋值

|=

按位或后赋值

其他运算符

运算符 描述

&

*

取值符,返回指针的变量

运算符优先级

有些运算符拥有较高的优先级,二元运算符的运算方向均是从左至右。下表列出了所有运算符以及它们的优先级,由上至下代表优先级由高到低:

优先级 运算符

7

^ !

6

* / % << >> & &^

5

+ - | ^

4

== != < <= >= >

3

<-

2

&&

1

||

特殊标识符

“_”是特殊标识符,又称占位符(空标识符号),用来忽略结果。

1、特殊标识符应用在import中

在Go语言里,import的作用是导入其他package。

特殊标识符(如:import _ oldboy/golang)的作用:当导入一个包时,该包下的文件里所有init()函数都会被执行,然而,有些时候我们并不需要把整个包都导入进来,仅仅是是希望它执行init()函数而已。这个时候就可以使用 import _ 引用该包。即使用(import _ 包路径)只是引用该包,仅仅是为了调用init()函数,所以无法通过包名来调用包中的其他函数。

示例:
代码目录结构

src 
|
+--- main.go            
|
+--- oldboy
       |
        +--- oldboy.go

main.go

package main

import _ "./oldboy"

func main() {
    // oldboy.Print() 
    //编译报错:./main.go:6:5: undefined: oldboy
}

oldboy.go

package oldboy

import "fmt"

func init() {
    fmt.Println("The old boy welcomes you.")
}

func Print() {
    fmt.Println("Hello!")
}

运行结果:

The old boy welcomes you.

2、特殊标识符应用在代码中

package main

func main() {
    str, _ := oldboy()
    _ = str
}

func oldboy() (str string, err error) {
    str = "The old boy welcomes you."
    err = nil
    return
}

解释:

占位符,意思是那个位置本应赋给某个值,但是咱们不需要这个值。所以就把该值赋给占位符,意思是丢掉不要。这样编译器可以更好的优化,任何类型的单个值都可以丢给占位符。

第一个占位符:这种情况是忽略函数返回值,函数返回两个结果,而你只想要一个结果。

第二个占位符:这种情况是忽略未使用的局部变量,如果声明的局部变量,不使用,编译器是会报错。

下一篇:

Go语言变量------敬请期待!

0基础学习Go语言系列:

看完本文有收获?请转发分享给更多人

长按二维码

以上是关于Go语言运算符的主要内容,如果未能解决你的问题,请参考以下文章

go语言笔记——是c开发的 lex yacc进行词法和语法分析,go不支持函数和运算符重载,不支持类型继承,也不支持断言,还有泛型

Go语言第四篇:Go运算符

Go语言理论一

Go语言理论一

go语言基本运算符

每天一点Go语言——变量常量运算符解析