Go 言語の算術演算子

Go の算術演算子

Go の基本的な算術演算子

Go の基本的な算術演算子は次の表の通りです。

演算子 説明
+ 加算 1 + 2 = 3
- 減算 3 - 1 = 2
* 乗算 2 * 3 = 6
/ 除算 6 / 2 = 3
% 剰余 10 % 4 = 2

符号を表す単項演算子 +, -

プラスやマイナスの符号を表す単項演算子として +- が使えます。 例えば -3 + 5 の結果は 2 になります。

Go の整数型の演算子

割り算での切り捨て

整数型での演算では、特に除算で注意が必要です。

整数値同士の除算では、小数点以下は切り捨てられます。従って、 10/3 の計算結果は 3 になります。

fmt.Println(10 / 3) // 3

NOT 演算単項演算子 ^

^ 単項演算子はビットの NOT演算 (1 と 0 をフリップ) になります。

var x uint8 = 3
var y int8 = 3
fmt.Println(^x) // 252
fmt.Println(^y) // -4

ビット演算は整数型に対してのみ行われます。浮動小数点型などには適用できません。

Go のビット演算

整数型に対するビット演算子は次の表の通りです。

ビット演算子 意味
& AND
ビット毎に比較し両方とも 1 の箇所のみ 1
0b1010 & 0b1100 → 0b1000
| OR
ビット毎に比較し片方でも1の箇所が1
0b1010 | 0b1100 → 0b1110
^ XOR
ビット毎に比較し片方が1の箇所が1
0b1010 ^ 0b1100 → 0b0110
&^ AND NOT
NOT との AND 演算。
自身との &^ 演算でビットがクリアされる
0b1100 &^ 0b1100 → 0b0000
<< 左シフト 0b0001 << 2 → 0b0100
>> 右シフト 0b1000 >> 1 → 0b0100

Go の文字列型変数の演算

文字列型 string に対して + 演算を行うと、文字列を結合します。

a := "Hello"
b := "world!"
s := a + ", " + b // Hello, world!

Go の算術演算と代入

Go で演算の結果を代入する演算子

Go で演算を行った結果を代入する演算子として、以下が使えます。

演算子 説明 等価の演算
+= 加算の結果を代入 a += b a = (a + b)
-= 減算の結果を代入 a -= b a = (a - b)
*= 乗算の結果を代入 a *= b a = (a * b)
/= 除算の結果を代入 a /= b a = (a/b)
%= 剰余を代入 a %= b a = (a % b)
++ インクリメント (+1) a++ a += 1
-- デクリメント (-1) a-- a -= 1

Go ではインクリメントとデクリメントは文

C言語などと異なり、Go ではインクリメント ++ とデクリメント -- は式 (expression) ではなく文 (statement) です。

「式」は評価された結果の「値」をもちます。「文」は「手続き」のことを表します。

次のコードはシンタックスエラーが発生し、コンパイルできません。

a := 2
fmt.Println(a++) // エラー

以上、ここでは Go の算術演算について説明しました。

ここまでお読みいただき、誠にありがとうございます。SNS 等でこの記事をシェアしていただけますと、大変励みになります。どうぞよろしくお願いします。

© 2024 Go 言語入門