[ Go ] 9. Operators

fmt.Println(“sub” + “title”)

Artis Tu
Artis Tu
Sep 9, 2018 · 2 min read

算數運算子( Arithmetic operators )

# standard 
+ sum 全都適用
- difference integers, floats, complex values
* product integers, floats, complex values
/ quotient integers, floats, complex values
% remainder integers

# bitwise logic
& AND integers
| OR integers
^ XOR integers
&^ AND NOT integers

# shift operators
<< left shift integer << unsigned integer
>> right shift integer >> unsigned integer

如同之前提到的,同型態才能做運算。

+ — * / 的用法相信沒問題,其中值得注意的是字串( string )可以使用 + 運算。

% 是取餘數用的,像是 10 % 3 代表 10 除以 3 的餘數,結果為 1

& | ^ &^ 為位元運算子, fmt.Println("1 XOR 0 is" 1^0) 的輸出結果為 1

<< >> 為平移運算子, fmt.Printf("%06b\n", 3<<2) 的輸出結果為 001100


在整數的情況下 + — ^ 有其它用途,分別是:

+x                          0 + x
-x negation 0 - x
^x bitwise complement m ^ x

優先度

除了基本的先加減後乘除之外,其它運算子之間仍有優先順序,如下:

其中 5 為最高優先度。

5    *  /  %  <<  >>  &  &^
4 + - | ^
3 == != < <= > >=
2 &&
1 ||

比較運算子( Comparison operators )

==    等於
!= 不等於
< 小於
<= 小於等於
> 大於
>= 大於等於

邏輯運算子( Logical operators )

&&    且    p && q
|| 或 p || q
! 非 !p

取址運算子( Address operators )

*   取址
& 取值

接收運算子( Receive operators )

這個跟 channel 有關,以後再補 XD


Artis 的程式學習筆記

記錄日常所學

Artis Tu

Written by

Artis Tu

Artis 的程式學習筆記

記錄日常所學