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不支持函数和运算符重载,不支持类型继承,也不支持断言,还有泛型