
Go言語の演算は、他のプログラミング言語と違うのかな?
Go言語での演算子は他のプログラミング言語と一緒です。
すでに他のプログラミング言語を学習済みの方は復習として、プログラミング初学者の方はきちんと覚えておくことで他のプログラミング言語を学習したときに役立つことでしょう。
それでは、コードを混じえてお伝えしていきます。
算術演算子
算術演算子は基本的な足し算・引き算・かけ算・割り算・剰余算やプログラミングで多く使用されるインクリメント(1を足す)やデクリメント(1を引く)のことです。
それでは、ひとつづつコードを確認していきましょう。
足し算
足し算では数値だけでなく、文字も足し算することができます。
// 算術演算子・足し算
package main
import "fmt"
func main() {
// 足し算
fmt.Println(1 + 2)
// 文字の足し算
fmt.Println("あいう" + "えお")
}
// 出力結果
$ go run main.go
3
あいうえお
引き算
// 算術演算子・引き算
package main
import "fmt"
func main() {
// 引き算
fmt.Println(3 - 1)
}
// 出力結果
$ go run main.go
2
かけ算
かけ算は算数では「×」ですが、プログラミングでは * を使用します。
// 算術演算子・かけ算
package main
import "fmt"
func main() {
// かけ算
fmt.Println(4 * 5)
}
// 出力結果
$ go run main.go
20
割り算
かけ算は算数では「÷」ですが、プログラミングでは / を使用します。
// 算術演算子・割り算
package main
import "fmt"
func main() {
// 割り算
fmt.Println(6 / 2)
}
// 出力結果
$ go run main.go
3
剰余算(あまり算)
剰余算(あまり算)は、割り算で割り切れないあまりを出力します。
倍数を求めるときに使用される算術演算子です。

3の倍数を求めたい時は3で割るとあまりが0になりますね。このような形で使用されます。
// 算術演算子・剰余算
package main
import "fmt"
func main() {
// 剰余算(あまり算)
fmt.Println(7 % 3)
}
// 出力結果
$ go run main.go
1 // 7÷3のあまりは1です
代入演算
変数を用いた演算で、プログラミングでは省略した形を用いられます。
// 代入演算
package main
import "fmt"
func main() {
// 代入演算
var num int = 0
// num = num + 5と同じ意味
num += 5
fmt.Println(num)
// num = num - 3と同じ意味
num -= 3
fmt.Println(num)
}
// 出力結果
$ go run main.go
5 // num = 0 + 5 の計算結果になります
2 // num = 5 - 3 の計算結果になります
インクリメント
インクリメントは増加などの意味を持つ単語で、プログラミングでは変数に1を足す演算として用いられます。
// インクリメント
package main
import "fmt"
func main() {
var num int = 0
// num = num + 1の場合は下記のように記述できる
num++
fmt.Println(num)
}
// 出力結果
$ go run main.go
1
ポイントはnum = num + 1の場合は、 num++
となるところです。
デクリメント
デクリメントは減少などの意味を持つ単語で、プログラミングでは1を減らす演算として用いられます。
// デクリメント
package main
import "fmt"
func main() {
var num int = 1
// num = num - 1の場合は下記のように記述できる
num--
fmt.Println(num)
}
// 出力結果
$ go run main.go
0
インクリメントとデクリメントはfor文などでよく使用されますので、きちんと押さえておきましょう。
比較演算子
比較演算子は正しい(true:真)か正しくない(false:偽)を返す演算子になります。
基本的には数学で用いられる比較演算子と一緒ですが、同じ値を示す = に関しては、プログラミングでは = = イコールを2つ使用するところに違いがあります。

ちなみにイコールが1つの場合は「代入」になります。
// 比較演算子
package main
import "fmt"
func main() {
// 値が等しいかどうか
// 出力はbool型で返す(trueかfalseか)
fmt.Println("1 == 1 は?", 1 == 1) // true
fmt.Println("1 == 2 は?", 1 == 2) // false
// 値が等しくない場合をtrueで判定する場合
// 逆に等しい場合はfalse
fmt.Println("1 != 2 は?", 1 != 2) // != は等しくない
fmt.Println("1 != 1 は?", 1 != 1)
// 数値の大きさを比較
// 出力はbool型で返す(trueかfalseか)
fmt.Println("3 <= 5 は?", 3 <= 5) // 以上
fmt.Println("3 >= 5 は?", 3 >= 5) // 以下
fmt.Println("3 < 5 は?", 3 < 5) // 右辺よりも左辺が大きい
fmt.Println("3 > 5 は?", 3 > 5) // 右辺よりも左辺が小さい
}
// 出力結果
$ go run main.go
1 == 1 は? true
1 == 2 は? false
1 != 2 は? true
1 != 1 は? false
3 <= 5 は? true
3 >= 5 は? false
3 < 5 は? true
3 > 5 は? false
あと混乱しそうなのが not演算子 !=
で、正しくなければ true という点に注意が必要です。
論理演算子
論理演算子は、比較演算子と合わせて使用されます。
// 論理演算子
package main
import "fmt"
func main() {
fmt.Println("true && true は?", true && true) // true
fmt.Println("true && false は?", true && false) // false
fmt.Println("true || false は?", true || false) // true
fmt.Println("true || true は?", true || true) // true
fmt.Println("false || false は?", false || false) // false
fmt.Println("!true は?", !true) //false
fmt.Println("!false は?", !false) //true
}
// 出力結果
$ go run main.go
true && true は? true
true && false は? false
true || false は? true
true || true は? true
false || false は? false
!true は? false
!false は? true
【最後に】Go言語での演算子
今回は演算子についてお伝えしてきましたが、Go言語だから特別な演算子があるのではなく他のプログラミング言語と同じです。
これから実際にプログラムを書くにあたって演算子は必要不可欠ですから、きちんと覚えておきましょう!
comment