ぷらこのきろく

メモとかテストとか備忘録とか

構造体

golangの構造体の中に、他の構造体の宣言を入れられるみたい。
うまいこと説明できないけど

type hogebase struct {
	j     int
}

とりあえず先に(後でもいいけど)取り込む構造体を宣言してみる。

type hoge struct {
	hogebase
	i  int
	str string
}

で、こんな感じに、先に宣言したhogebaseを中に入れておくと

func main() {	
	nanka := hoge {
		str: "string",
	}
	nanka.j = 5 //<---
}	

あたかもjがnankaのメンバ変数になってるかのように扱うことができるみたい。

ただ、

	nanka := hoge {
		str: "string",
		j:   5  // <---
	}

これはコンパイルエラーになるみたい。初期化はできない、ということだろうか。

たぶんどこかに書いてあるだろうけど、へぇって思ったので日記行き。