Go言語 構造体を初期化するサンプルプログラム

構造体のフィールドに愚直に値を代入すれば、とりあえず動きますが、記述もめんどくさいし、あまり格好よくないので、変数定義時に初期化するプログラムを書きたいと思います。

(サンプルプログラム)
init_struct.go

package main

import "fmt"

type Book struct {
    title  string
    author string
    isbn   string
    price  int64
}

func main() {
    // フィールド名と初期値を指定する方法
    b1 := Book{
        title:  "みんなのGo言語",
        author: "剛太郎",
        isbn:   "ISBN978-4-86334-177-4",
        price:  2800, // 初期値の最終行にもカンマを書く
    }

    // フィールド定義の順番に初期値を指定する方法
    b2 := Book{
        "Go言語入門",
        "Goひろみ",
        "ISBN978-4-777000-777-7",
        4500,
    }

    fmt.Println(b1)
    fmt.Println(b2)
}

}を単独で書く場合は、初期値の最終行にも,(カンマ)を書かないとコンパイルエラーになります。

(実行結果)

$ go run init_struct.go
{みんなのGo言語 剛太郎 ISBN978-4-86334-177-4 2800}
{Go言語入門 Goひろみ ISBN978-4-777000-777-7 4500}