Go言語 型と変数 #04

Go言語は「静的型付け」

今まではスクリプト言語しか話題にしてきませんでしたので「動的型付け」ばかりでしたが、Go言語は「静的型付け」です。
静的型付けと動的型付けを簡単に説明しますと、変数の型を手動で決めるか自動で決めるかの違いです。
Pythonでしたら、変数 a というものの中に下のように何でも代入できます。
a = “文字列”
a = 123
a = 3.14
a = True
print(a) # True
Go言語でしたら、一行目でエラーになります。

変数の定義

Go言語で a = “文字列” にしたければ、まず a を定義します。
定義の仕方は、変数名 スペース 型名で定義します。

var a string

定義の後でしたら、値を代入できます。

a = “文字列”

定義と同時に代入もできます。

var a string = “文字列”

varを付けて最初から値を代入すれば型を省略できます。

var a = “文字列”

関数内に限っては、varを省略して下のように書けます。

a := “文字列”

上のように、コロンとイコールで代入することを「暗黙的な型宣言」と言うそうです。

Pythonなどのスクリプト言語に比べて、Go言語は変数の定義に型を意識しないといけないので面倒ですが、プログラムを実行してから型を特定するスクリプト言語よりも処理スピードが速くなります。

※処理スピードの他に開発のスピードやメンテナンスのやり易さなど全体のコストを考えて言語を選ぶのがいいようです。簡単なプログラムはスクリプト言語で作成する方が効率が良いです。

主な「型」

ゼロ値とは、変数を定義したがまだ何も代入していない段階で入っている値です。

string
文字列です。ゼロ値は””です。
int
小数点のない数値です。ゼロ値は0です。
float64
小数点のある数値です。ゼロ値は0です。
bool
ブール型です。真(true)と偽(false)という2値をとるデータ型です。ゼロ値はfalseです。

Go Playground で実行する

Printf関数

Printf は、指定されたフォーマットに従ってフォーマットを行い、出力します。
上の例では 変数 f に “「%v」のデータ型は%T\n” という文字列が代入されていますので、
fmt.Printf(f, a, a) は fmt.Printf(“「%v」のデータ型は%T\n”, a, a) となります。

%v はデフォルトフォーマットを適用した値
%T は値の型

fmt.Printf(“「%v」のデータ型は%T\n”, a, a)
カンマの後にa,aという同じ変数を指定して、最初は%vに対応させ、次のaは%Tに対応させて出力しています。
\nは改行を意味します。

フォーマットの書式化記号の例は http://golang.jp/pkg/fmt を参考にして下さい。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする