LoginSignup
1
2

More than 5 years have passed since last update.

はじめてのGo言語 2.変数

Last updated at Posted at 2015-10-14

前回の記事はこちら
はじめてのGo言語 1.環境構築

JavaScriptをやってる身からすると、型を定義するというのがなれなくてちょいちょいつっかかるところがあったので知識定着のためにメモ。

変数の宣言

Goの変数はvarで宣言をすることができます。
また変数を宣言する際は一緒に型を指定する必要があります。

以下がその例です。

main.go
var x int = 1

xという変数に対して1という数値を代入しています。
型はint型です。
int型は整数を扱うことができます。

型を定義した後に変数に代入する場合は型に合わせたものを入れる必要があります。
以下のように文字列を入れようとするとエラーが発生します。

main.go
var x int = 1
x = "hoge" //cannot use "hoge" (type string) as type int in assignment

省略した宣言方法

変数は一度に複数宣言することができます。
複数宣言する場合はカンマで区切り最後に型を指定します。

main.go
var x, y, z int = 1, 2, 3

また以下のような宣言も可能です。

main.go
var (
    x int = 1
    y     = 2
    z     = 3
)

varの後にカッコをつけて、中に記述していきます。

最初の変数に型を指定することであとの変数も同じ型を指定することができます。

こちらの方が変数に何が入っているのか見通しがよいのでよさげです。

上記の方法を使うとこんな変則的な宣言もできます。

var (
    x int    = 1
    y        = 2
    z string = "hoge"
)

関数内での変数宣言について

関数内部ではvarを省略することができます。

main.go
func main(){
    var x int = 1
    x++
    fmt.printf(x)
}

上記のコードは以下のように書くこともできます。

関数内ではvarと型の省略をすることが可能です。
:=を使用することで型を推測して自動に型を定義してくれます。

main.go
func main() {
    x := 1
    x++
    fmt.Println(x)
}

定数

varではなくconstをしようすると定数として定義することができます。
定数は再代入することが不可能です。再代入をしようとするとエラーになります。

main.go
const x = 1
x = 2 //cannot assign to x

追記(2015.10.15)

初期化子

変数は初期化子を与えると勝手に型を予測してくれる。

main.go
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
1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2