前回の記事はこちら
はじめてのGo言語 1.環境構築
JavaScriptをやってる身からすると、型を定義するというのがなれなくてちょいちょいつっかかるところがあったので知識定着のためにメモ。
変数の宣言
Goの変数はvar
で宣言をすることができます。
また変数を宣言する際は一緒に型を指定する必要があります。
以下がその例です。
var x int = 1
x
という変数に対して1という数値を代入しています。
型はint型です。
int型は整数を扱うことができます。
型を定義した後に変数に代入する場合は型に合わせたものを入れる必要があります。
以下のように文字列を入れようとするとエラーが発生します。
var x int = 1
x = "hoge" //cannot use "hoge" (type string) as type int in assignment
省略した宣言方法
変数は一度に複数宣言することができます。
複数宣言する場合はカンマで区切り最後に型を指定します。
var x, y, z int = 1, 2, 3
また以下のような宣言も可能です。
var (
x int = 1
y = 2
z = 3
)
var
の後にカッコをつけて、中に記述していきます。
最初の変数に型を指定することであとの変数も同じ型を指定することができます。
こちらの方が変数に何が入っているのか見通しがよいのでよさげです。
上記の方法を使うとこんな変則的な宣言もできます。
var (
x int = 1
y = 2
z string = "hoge"
)
関数内での変数宣言について
関数内部ではvar
を省略することができます。
func main(){
var x int = 1
x++
fmt.printf(x)
}
上記のコードは以下のように書くこともできます。
関数内ではvar
と型の省略をすることが可能です。
:=
を使用することで型を推測して自動に型を定義してくれます。
func main() {
x := 1
x++
fmt.Println(x)
}
定数
var
ではなくconst
をしようすると定数として定義することができます。
定数は再代入することが不可能です。再代入をしようとするとエラーになります。
const x = 1
x = 2 //cannot assign to x
追記(2015.10.15)
初期化子
変数は初期化子を与えると勝手に型を予測してくれる。
var x = 1 //int型
var y = 1.234 //float64型
var flag = true //bool型
var hoge = "fuga" //string型
x = false //cannot use false (type bool) as type int in assignment