Go语言-运算符(位,逻辑,算术,指针,赋值)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/guanchunsheng/article/details/79420434

1 位运算

二元运算符 说明
&
|
^ 异或
&^ 清零
一元运算符 说明
^ 按位补足.这个再查查,没看懂
<< , >> 左移右移

2 逻辑运算符

运算结果是bool类型

逻辑运算符
==
!=
<
<=
>
>=

3 算术运算符

算术运算符 说明
+
-
*
/ 整数的 / 运算,结果还是整数。5 / 2 = 2
% 模运算%只能用于整数。

保留C家族的简写方式:+=, -=, *=, /=, %=, ++, - -

注意:++ - - 只能用于自身的增减,并不能用于表达式取值。也就是说:

i++ //可以
a = i++ //不可以,不能作为表达式取值
foo(i++) //不可以,不能作为参数取值

4 指针

Go有指针,但是指针本身不能进行指针计算。

取地址

var i = 5
&i

指针类型变量

var intP *int
intP = &i
fmt.Printf("location in memory: %p\n", intP) //注意是%p

间接引用(取内存、反引用)

*intP
fmt.Printf("var value: %d\n", *intP)
var == *(&var) //任何变量var,这个都是true
c := *intP++ //不合法,指针在Go中不能运算

定义但是没有分配到任何变量的指针变量,其值是nil

5 多重赋值

const beef, two, c = "eat", 2, "veg"
a, b, c := 1, 2.0, "dollar"

多重赋值挺有用的,跟python一样,交换两个变量很简单:

a, b = b, a
a, b = funcName()
_, b = funcName()

可以用 _ 占位置,接受函数的多个返回值,而不需要用的那部分。

猜你喜欢

转载自blog.csdn.net/guanchunsheng/article/details/79420434