1. 程式人生 > >go語言基礎之運算子

go語言基礎之運算子

一、運算子分類

1.1 算術運算子

運算子

術語

示例

結果

+

10 + 5

15

-

10 - 5

5

*

10 * 5

50

/

10 / 5

2

%

取模(取餘)

10 % 3

1

++

後自增,沒有前自增

a=0; a++

a=1

--

後自減,沒有前自減

a=2; a--

a=1

 

1.2 關係運算符

運算子

術語

示例

結果

==

相等於

4 == 3

false

!=

不等於

4 != 3

true

小於

4 < 3

false

大於

4 > 3

true

<=

小於等於

4 <= 3

false

>=

大於等於

4 >= 1

true

 

1.3 邏輯運算子

運算子

術語

示例

結果

!

!a

如果a為假,則!a為真;

如果a為真,則!a為假。

&&

a && b

如果a和b都為真,則結果為真,否則為假。

||

a || b

如果a和b有一個為真,則結果為真,二者都為假時,結果為假。

 

1.4 位運算子

運算子

術語

說明

示例

&

按位與

參與運算的兩數各對應的二進位相與

60 & 13 結果為12

|

按位或

參與運算的兩數各對應的二進位相或

60 | 13 結果為61

^

異或

參與運算的兩數各對應的二進位相異或,當兩對應的二進位相異時,結果為1

60 ^ 13 結果為240

<< 

左移

左移n位就是乘以2的n次方。 左邊丟棄,右邊補0。

4 << 2 結果為16

>> 

右移

右移n位就是除以2的n次方。 右邊丟棄,左邊補位。

4 >> 2 結果為1

 

1.5 賦值運算子

運算子

說明

示例

=

普通賦值

c = a + b 將 a + b 表示式結果賦值給 c

+=

相加後再賦值

c += a 等價於 c = c + a

-=

相減後再賦值

c -= a 等價於 c = c - a

*=

相乘後再賦值

c *= a 等價於 c = c * a

/=

相除後再賦值

c /= a 等價於 c = c / a

%=

求餘後再賦值

c %= a 等價於 c = c % a

<<=

左移後賦值

c <<= 2 等價於 c = c << 2

>>=

右移後賦值

c >>= 2 等價於 c = c >> 2

&=

按位與後賦值

c &= 2 等價於 c = c & 2

^=

按位異或後賦值

c ^= 2 等價於 c = c ^ 2

|=

按位或後賦值

c |= 2 等價於 c = c | 2

 

1.6 其他運算子

運算子

術語

示例

說明

&

取地址運算子

&a

變數a的地址

*

取值運算子

*a

指標變數a所指向記憶體的值

 

1.7 運算子優先順序

在Go語言中,一元運算子擁有最高的優先順序,二元運算子的運算方向均是從左至右。

 

下表列出了所有運算子以及它們的優先順序,由上至下代表優先順序由高到低:

優先順序

運算子

7

^      !  

6

*       /    %    <<    >>    &      &^

5

+      -     |      ^

4

==   !=   <    <=    >=    >

3

<-

2

&&

1

||

 

示例: