読者です 読者をやめる 読者になる 読者になる

Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

構造体型の初期化方法

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