Go言語   演算子

ホーム   Goチュートリアル


プログラミング言語には、いろいろな記号が使われます。これらの記号は演算子と呼ばれるもので。この章では、Go 言語の演算子について説明します。

代入演算子

=

= (イコール)は、プログラミング言語では、代入をあらわします。代入とは、演算子の左辺(左側)の変数に、演算子の右辺(右側)の値を与えることです。左辺の変数にもとからあった値は、右辺の値で、置きかわります。


var number int
number = 100    // numberの値は100
number = 200    // numberの値は200
    

算術演算子

+      -      *      +      /      %

算術演算子は、足し算、引き算、かけ算、わり算の四則演算と、わり算のあまりです。かけ算は *(アスタリスク)、わり算は /(スラッシュ)、わり算のあまりは %(パーセント)であらわします。


package main

func main() {
	println(5 + 2)	// 7 と表示されます
	println(5 - 2)	// 3 と表示されます
	println(5 * 2)	// 10 と表示されます
	println(5 / 2)	// 2 と表示されます
	println(5 % 2)	// 1 と表示されます
}
    

複合代入演算子

変数に値を代入する場合、a = a + 10 という代入もできます。変数 a の値に 10 を足した値を、変数 a に再代入するという意味になります。

このような代入をする場合には、複合代入演算子と呼ばれるものが使えます。

+=

左辺の変数の値に、右辺の値を足した値を、左辺の変数に再代入します。


package main

func main() {

	a := 5
	b := 5
	a = a + 2
	b += 2
	println(a)	// 7 と表示されます
	println(b)	// 7 と表示されます
}
    

-=

左辺の変数の値から、右辺の値を引いた値を、左辺の変数に再代入します。


package main

func main() {

	a := 5
	b := 5
	a = a - 2
	b -= 2
	println(a)	// 3 と表示されます
	println(b)	// 3 と表示されます
}
    

*=

左辺の変数の値に、右辺の値をかけた値を、左辺の変数に再代入します。


package main

func main() {

	a := 5
	b := 5
	a = a * 2
	b *= 2
	println(a)	// 10 と表示されます
	println(b)	// 10 と表示されます
}
    

/=

左辺の変数の値を、右辺の値でわった値を、左辺の変数に再代入します。


package main

func main() {

	a := 5
	b := 5
	a = a / 2
	b /= 2
	println(a)	// 2 と表示されます
	println(b)	// 2 と表示されます
}
    

%=

左辺の変数の値を、右辺の値をわった後のあまりの値を、左辺の変数に再代入します。


package main

func main() {

	a := 5
	b := 5
	a = a % 2
	b %= 2
	println(a)	// 1 と表示されます
	println(b)	// 1 と表示されます
}
    

インクリメントとデクリメント

プログラミングでは変数の値を 1 だけ増やしたい場合や、1 だけ減らしたい場合がよくあります。そのような時に使えるのが ++ と -- のインクリメンターとデクリメンターです。


package main

func main() {

	a := 5
	b := 5
	a++
	b--
	println(a)	// 6 と表示されます
	println(b)	// 4 と表示されます
}
    

比較演算子

左辺の値と右辺の値を比較するのが比較演算子です。比較が正しければ true (真)、正しくなければ false(偽)という値が返ってきます。


package main

func main() {

	// 左辺の値が、右辺より大きいかどうか
	println(5 > 2)	// true と表示されます
	println(5 > 5)	// false と表示されます
	println(2 > 5)	// false と表示されます
	
	println()		// 空行が表示されます
	
	// 左辺の値が、右辺と同じか大きい(以上)かかどうか
	println(5 >= 2)	// true と表示されます
	println(5 >= 5)	// true と表示されます
	println(2 >= 5)	// false と表示されます
	
	println()		// 空行が表示されます
	
	// 左辺の値が、右辺より小さい(未満)かどうか
	println(5 < 2)	// false と表示されます
	println(5 < 5)	// false と表示されます
	println(2 < 5)	// true と表示されます
	
	println()		// 空行が表示されます
	
	// 左辺の値が、右辺と同じか小さい(以下)かどうか
	println(5 <= 2)	// false と表示されます
	println(5 <= 5)	// true と表示されます
	println(2 <= 5)	// true と表示されます
	
	println()		// 空行が表示されます
	
	// 左辺の値が、右辺と等しいかどうか
	println(5 == 2)	// false と表示されます
	println(5 == 5)	// true と表示されます
	println(2 == 5)	// false と表示されます
	
	println()		// 空行が表示されます
	
	// 左辺と値が、右辺と等しくないかどうか
	println(5 != 2)	// true と表示されます
	println(5 != 5)	// false と表示されます
	println(1 != 5)	// true と表示されます
}
    

条件演算子

複数の比較演算をつないだり、比較演算の返した値を反転させたりすることができます。

&&

論理積またはANDと言います。
複数の比較演算が、すべて true だった場合に、全体の値として true を返します。


package main

func main() {

	println(5 > 2 && 5 >= 2 && 5 != 2)	// true と表示されます
	println(true && true && true)		// true と表示されます
	println(true && true && false)		// false と表示されます
}
    

||

論理和またはORと言います。
複数の比較演算のうち、どれかひとつだけでも true だった場合に、全体の値として true を返します。


package main

func main() {

	println(5 > 2 || 5 == 2 && 5 < 2)	// true と表示されます
	println(true || false || false)		// true と表示されます
	println(false || false || false)	// false と表示されます
}
    

!

否定またはNOTと言います。
論理演算の値を反転させます。


package main

func main() {

	println(!(5 > 2))	// false と表示されます
	println(!(5 < 2))	// true と表示されます
	println(!(5 > 2 && 5 == 2 && 5 < 2))	// true と表示されます
	println(!(5 > 2 || 5 == 2 || 5 < 2))	// false と表示されます
}
    


723 visits
Posted: Jun. 21, 2019
Update: Jun. 21, 2019

ホーム   Goチュートリアル   目次