Go言語の構造体型は変数を意味合いレベルでカタマリにできるもので……なんだかクラスに似ています。
今回はこれの初期化方法について。
実際のところ
MyTypeというint型と[]byte型をもつ構造体を定義し、
- 一個毎にデータを突っ込む方法
- まとめて入れる方法(複合リテラル)
を考えます。
package main import "fmt" type MyType struct { num int body []byte } func main() { // p := new(MyType) p.num = 12 p.body = []byte("yes") fmt.Printf("%d::%s\n", p.num, p.body) //複合リテラルによる単純化 p2 := MyType{34,[]byte("great")} fmt.Printf("%d::%s\n", p2.num, p2.body) }
実行すると、以下の通り
$ go run hoge.go 12::yes 34::great