Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

GO言語の構造体型を初期化する方法

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