[ Go ] 9. Operators
fmt.Println(“sub” + “title”)
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參考資料
1. https://golang.org/ref/spec
