Go言語_変数と型



変数宣言

Go言語の変数宣言は変数名の後に型を指定する形式となります。

var 変数名 型

初期値が指定されない場合、変数は宣言時に型に合わせて「ゼロ値」というデフォルト値で初期化されます。

例えばint型ならば0、string型ならば空文字""、bool型ならばfalse と初期化されます。


初期値の指定

宣言時に初期値を指定するには、値を代入します。

var str string = "The Go Programming Language"

一度に複数の宣言を行う場合、以下のように記述します。

var str1, str2, str3 string = "The Go", "Programming", "Language"

括弧で囲う記述もでき、2つ目以降の型を省略することができます。

var (
    str1 string = "The Go"
    str2        = "Programming"
    str3        = "Language"
)

型推論と省略形

Go言語では、型は静的に推論されます。そのため型を省略することができます。

var str = "The Go Programming Language"

さらに、変数宣言と初期化を行う場合に、var と型宣言を省略して「:=」演算子を用いることができます。

可読性を考慮して、変数型を明示する必要性がない場合に下記形式を多く用います。

str := "The Go Programming Language"

変数

基本型

Goでは、以下の基本型が用意されています。

int int8 int16 int32 int64 uint uint8 uint16 uint32 uint64 uintptr
float32 float64 complex64 complex128
bool byte
string rune

型の調べ方

reflect.TypeOf()関数で変数の型を調べることができます。

package main

import (
	"fmt"
	"reflect"
)

func main() {
	fmt.Println(reflect.TypeOf(1))    // int
	fmt.Println(reflect.TypeOf(1.1))  // float
	fmt.Println(reflect.TypeOf(""))   // string
	fmt.Println(reflect.TypeOf(true)) // bool
}

配列(Array)

配列は「var 変数名 [配列長]型」で記述します。

配列は宣言時の固定長データであり、途中で長さを変えることはできません。

package main

import "fmt"

func main() {
        var array1 [5]int
        array1[0] = 123
        array1[2] = 456
        array1[4] = 789
        for i, num := range array1 {
                fmt.Printf("array[%d] = %d\n", i, num)
        }
        fmt.Println("")

        array2 := [5]string{"a", "bb", "cc", "ddd", "eee"}
        fmt.Println("array[:]   = ", array2[:])   // [a bb cc ddd eee]
        fmt.Println("array[1:4] = ", array2[1:4]) // [bb cc ddd]
        fmt.Println("array[:4]  = ", array2[:4])  // [a bb cc ddd]
        fmt.Println("array[1:]  = ", array2[1:])  // [bb cc ddd eee]
}


定数

「const」キーワードを用いると定数宣言になります。

const str string = "The Go Programming Language"

列挙するには丸括弧を用います。

const (
    One   = 1
    Two   = 2
    Three = 3
)

さらに、値が連番になっている場合は、以下のような書き方も出来ます。

C言語におけるenumと同様の定義が可能です。

const (
   One = iota + 1
   Two
   Three
)

変数型

nil

nullではなく、nil


関連ページ



スポンサード リンク