34

Go 语言学习之运算符

 3 years ago
source link: http://mp.weixin.qq.com/s?__biz=MzA4Mjc1NTMyOQ%3D%3D&%3Bmid=2247483747&%3Bidx=1&%3Bsn=2cd231dba19ef72a6d507ddb3d275cfd
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

jIn63qf.jpg!web

01

算术运算符

算术运算符有加号(+)、减号(-)、乘号(*)、除号(/)、取余(%),我们声明两个变量 a 和 b,并分别赋值 10 和 5,通过代码,我们演示算术运算符的用法。

func main() {

a := 10

b := 5

fmt.Println("a + b = ", a+b)

fmt.Println("a - b = ", a-b)

fmt.Println("a * b = ", a*b)

fmt.Println("a / b = ", a/b)

fmt.Println("a % b = ", a%b)

}

02

++ 和 --

自增和自减不是运算符,只能作为独立语句使用,不能用于表达式,不能放在变量名前面使用。通过代码,我们演示 ++ 和 -- 的用法。

func main() {

a := 10

b := 5

a++

b--

fmt.Println("a++:", a)

fmt.Println("b--:", b)

03

赋值运算符

为了简化表达式,与大多数语言相同,Go 语言也提供了一些赋值运算符,有等号(=)、加等(+=)、减等(-=)、乘等(*=)、除等(/*)、取余等(%=),通过代码,我们演示赋值运算符的用法。

func main() {

aa := 50

aa += 10

fmt.Println("aa = ", aa)


bb := 50

bb -= 10

fmt.Println("bb = ", bb)


cc := 50

cc *= 10

fmt.Println("cc = ", cc)


dd := 50

dd /= 10

fmt.Println("dd = ", dd)


ff := 50

ff %= 10

fmt.Println("ff = ", ff)

}

04

关系运算符

关系运算符主要用于流程控制语句中,在 Go 语言中,关系运算符有大于(>)、小于(<)、大于等于(>=)、小于等于(<=)、等于等于(==)和不等于(!=),通过代码,我们演示关系运算符的用法。

func main() {

if a > 5 && b > 5 {

fmt.Println("a > 5 且 b > 5")

}


if a > 5 || b > 5 {

fmt.Println("a > 5 或 b > 5")

}


if a > 5 && b >= 5 {

fmt.Println("a > 5 且 b >= 5")

}


if a == b {

fmt.Println("a == b")

}


if a != b {

fmt.Println("a != b")

}


boolean := false

if !boolean {

fmt.Println("非假既真")

}

}

05

逻辑运算符

逻辑运算符,同样主要用于流程控制语句中,在 Go 语言中,逻辑运算符有且(&&)、或(||)、非(!),代码演示同上面的关系运算符代码。

06

& 和 *

取地址符(& 和指针运算符 (* ),不是所有对象都能进行取地址操作, 但是变量 是能正确返回 地址。 指针 运算符在等号左边 时, 可以更新目标对象, 在等号右边时, 可以获取目标对象。通过代码,我们演示取地址符和指针运算符的用法。

func main() {

x := 50

y := &x

*y++

z := *y

fmt.Println("y = ", y)

fmt.Println("x = ", x)

fmt.Println("z = ", z)

}

07

位运算符

位运算符是对整数在内存中的二进制位进行操作。因为篇幅原因,本文我们不对位运算符做过多的介绍,在工作中,个人建议尽量少用或不用位运算符,原因是代码可读性不好。如果你对位运算符感兴趣,可自行查阅相关资料。

08

优先级

最后,我们来介绍一下运算符的优先级,一元运算符的优先级最高,二元运算符的优先级分五个级别,从高往低分别是:

>> <=

相同优先级的二元运算符,从左往右依次计算。此外,我们还可以使用小括号提升某个表达式中运算符的优先级。

完整代码:

mMbMraA.png!web

输出结果:

a + b = 15

a - b = 5

a * b = 50

a / b = 2

a % b = 0

a++: 11

b--: 4

aa = 60

bb = 40

cc = 500

dd = 5

ff = 0

a > 5 或 b > 5

a != b

非假既真

y = 0xc0000b4070

x = 51

z = 51

B3yUfqm.jpg!web


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK