1 Golang演算子の概要
Go言語では、演算子がプログラムコードの演算、算術演算、関係比較、論理演算などを実行するために使用されます。異なる演算子は異なる機能と使用シナリオに対応しています。これらの演算子を理解し、マスターすることは効果的なプログラミングの基盤です。
2 算術演算子
Go言語では、一連の算術演算子が提供されています:
- 加算 (+): 加算演算
- 減算 (-): 減算演算
- 乗算 (*): 乗算演算
- 除算 (/): 除算演算
- 余り (%): モジュロ演算
例:
package main
import "fmt"
func main() {
// 加算演算
sum := 10 + 5
fmt.Println("10 + 5 =", sum) // 出力 15
// 減算演算
diff := 10 - 5
fmt.Println("10 - 5 =", diff) // 出力 5
// 乗算演算
prod := 10 * 5
fmt.Println("10 * 5 =", prod) // 出力 50
// 除算演算
quot := 10 / 5
fmt.Println("10 / 5 =", quot) // 出力 2
// モジュロ演算
rem := 10 % 5
fmt.Println("10 % 5 =", rem) // 出力 0
}
3 論理演算子
Go言語の論理演算子は、複数の条件を接続するために使用されます(一般的にはブール値に使用されます)。これにはAND(&&)、OR(||)、NOT(!)の3種類があります。
3.1 AND(&&)
すべての条件が真の場合、「AND」演算の結果は真となります。
例:
package main
import "fmt"
func main() {
fmt.Println(true && true) // 出力 真
fmt.Println(true && false) // 出力 偽
fmt.Println(false && false) // 出力 偽
// 両方の条件が真の場合、結果は真となります
}
3.2 OR(||)
少なくとも1つの条件が真の場合、「OR」演算の結果は真となります。
例:
package main
import "fmt"
func main() {
fmt.Println(true || true) // 出力 真
fmt.Println(true || false) // 出力 真
fmt.Println(false || false) // 出力 偽
// 少なくとも1つの条件が真の場合、結果は真となります
}
3.3 NOT(!)
条件のブール値を反転させるために使用されます。
例:
package main
import "fmt"
func main() {
fmt.Println(!true) // 出力 偽
fmt.Println(!false) // 出力 真
// ブール値を反転させます
}
4 比較演算子
Go言語の比較演算子は、2つの変数または値を比較するために使用されます:
- 等しい (==)
- 等しくない (!=)
- 大きい (>)
- 小さい (<)
- 以上 (>=)
- 以下 (<=)
比較演算の結果はブール値: true
または false
となります。
5 ビット演算子
Go言語では、ビット演算子を使用してデータのバイナリビットを直接操作できます:
- ビット AND (&)
- ビット OR (|)
- ビット XOR (^)
- ビット左シフト (<<)
- ビット右シフト (>>)
ビット演算子は主に低レベルのプログラミング、直接のハードウェア操作、暗号化などのシナリオで使用されます。
6 代入演算子
代入演算子は変数に値を代入するために使用されます。Go言語では、複数の形式の代入演算子が存在します:
- 単純代入 (=)
- 加算代入 (+=)
- 減算代入 (-=)
- 乗算代入 (*=)
- 除算代入 (/=)
- 剰余代入 (%=)
これらの演算子はコードをより簡潔にします。例えば、x += 1
は x = x + 1
と同等です。
7 特殊演算子
7.1 インクリメント(++)およびデクリメント(--)演算子
インクリメント演算子(++)およびデクリメント演算子(--)は、それぞれ変数の値に1を加えたり減らしたりするために使用されます。これらは、式ではなく変数自体に直接作用できるGo言語で唯一の演算子です。
package main
import "fmt"
func main() {
x := 1
x++
fmt.Println("x++ =", x) // 出力は2です
y := 10
y--
fmt.Println("y-- =", y) // 出力は9です
}
Go言語では、x++
やx--
が式の一部になることはできません。例えば、z := x++
は許可されていません。
7.2 型変換
Go言語は静的型付き言語です。つまり、変数が宣言されると、その型を変更することはできません。そのため、時には1つの型から別の型への変換が必要になります。Go言語には自動型変換はありません。明示的な型変換が必要です。
Example:
package main
import (
"fmt"
)
func main() {
var i int = 42
fmt.Println(float64(i)) // intをfloat64に変換
var f float64 = 3.14
fmt.Println(int(f)) // float64をintに変換、小数点以下は切り捨てられます
}
型変換を行う際には、浮動小数点数を整数に変換する際の精度の損失など、データが変換プロセス中に安全であることを確認することが重要です。