Go言語   変数

ホーム   Goチュートリアル


Go を含めて多くのプログラミング言語では、変数というものを使います。

変数とは

  1. 変数は、メモリーに値を格納する場所を確保して、その値に名前をつける仕組みです。この、メモリーに値を格納する場所を確保して、その値に名前をつけることを、変数の定義と言います。
  2. 変数を定義した後は、変数につけた名前で、その変数の値を呼び出します。名前で呼び出すので、何の値か判りやすくなります。なお、変数につけた名前のことを、変数名と言います。
  3. 定義した変数に、最初に値を与えることを、変数の初期化と言います。初期化されていない変数には、多くの場合、0 を意味する値が自動的に入っています。
  4. 変数の値は、何度でも書き換えることができます。この変数の値を書き換えることを、代入と言います。
  5. 変数は、使われる前に定義しておかなければなりません。

variable.go


package main

import ("math/rand"
		"time"
		"fmt"
)

func main() {

	var str string
	str = "サイコロの目は %d です\n"
	
	rand.Seed(time.Now().Unix())
	fmt.Printf(str, rand.Intn(6) + 1)
	fmt.Printf(str, rand.Intn(6) + 1)
	fmt.Printf(str, rand.Intn(6) + 1)
	
	str = "テストは %3d 点でした\n"
	fmt.Printf(str, rand.Intn(101))
	fmt.Printf(str, rand.Intn(101))
	fmt.Printf(str, rand.Intn(101))
}
    

実行結果


サイコロの目は 6 です
サイコロの目は 3 です
サイコロの目は 1 です
テストは  29 点でした
テストは  61 点でした
テストは  87 点でした
    

コード説明


	var str string
    

var というキーワードで、変数を定義することを宣言します。var は variable(変数)の略だと思えば判りやすいと思います。var の次に変数名を指定します。ここでは str という名前にしています。最後に変数が扱う値の型を指定します。ここでは文字列の型である string 型を指定しています。型については別の章で詳しく説明します。


	str = "サイコロの目は %d です\n"
    

変数 str を初期化しています。string 型の変数を初期化しない場合は、自動的に ""(空文字列)が入っています。


	fmt.Printf(str, rand.Intn(6) + 1)
    

変数 str の使用例です。


	str = "テストは %3d 点でした\n"
	

変数 str に違う値を代入しています。

変数の定義と初期化の簡略化

Go 言語の変数の定義と初期化には、簡略した方法が、いくつか用意されています。

define.go


package main

import ("math/rand"
		"time"
		"fmt"
)

func main() {

	rand.Seed(time.Now().Unix())
	
	var test string
	test = "テストの結果は"
	
	var score int = rand.Intn(101)
	
	ten := "点です"
	
	fmt.Println(test, score, ten)
}
    

実行結果


テストの結果は 97 点です
    

コード説明


	var score int = rand.Intn(101)
	

変数の定義と初期化は、このように 1 行で行なうこともできます。さらにこの場合は、変数 score に入る値が整数値であることが = の右辺から推論されるので、型指定の int を省略して、var score = rand.Intn(101) とすることもできます。なお int という型は整数値の型です。integer(整数)の略だと思えば判りやすいと思います。


	ten := "点です"
	

Go 言語では、さらに簡略された変数の定義と初期化方法が用意されています。:= の左辺に変数名を指定して、:= の右辺に値を指定します。これで、var キーワードを使わなくても、変数の定義と初期化が行われます。Go 言語の変数定義では、この方法が最もよく使われます。


	fmt.Println(test, score, ten)
	

この部分は、main パッケージの println 関数を使って、println(test, score, ten) と書くこともできます。
その場合は、fmt パッケージの読み込みはやめなければなりません。Go 言語では使われないパッケージを読み込んだ場合はエラーとなります。
Go 言語のコマンドラインプログラミングでは、fmt パッケージの Println 関数を使うほうが一般的です。

識別子の命名規則

変数名には、自由な名前がつけられます。このようにプログラマーが自由に名前を決められるものを識別子と言います。Go 言語の識別子には次の命名規則があります。

  1. 識別子に使える文字は、半角英文字の大文字と小文字、半角の英数字、そして _(アンダースコア、アンダーバー)だけです。
  2. 大文字と小文字は別の文字として区別されます。
  3. 識別子の先頭に数字を使うことはできません。先頭に数字を使うと、誤って数値と認識される可能性があるからだと思えば覚えやすいです。
  4. 変数名の先頭は英文字の小文字で始める慣習になっています。
  5. 変数名に意味を持たせるために、複数の単語を組み合わせたい場合は、2番目の単語から、単語の先頭の文字を、大文字にする手法が使われことが一般的です。例: mostBigValue。この手法のことを、文字の並びがラクダの形に似ていることから、キャメルケースと言います。


1529 visits
Posted: Jun. 19, 2019
Update: Jun. 19, 2019

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