あんまりハマってる人が居なかったのでメモ。
golang で以下の様に nested な匿名 struct を定義すると、良い感じに初期化できなくてハマった。
type A struct {
B struct {
C string
D string
}
}
こんな感じで初期化したいけれど、コンパイルエラーになる。
var a = A{
{
"foo", // missing type in composite literal
"bar",
},
}
こう書かないといけないみたい。
var a = A{
struct {
C string
D string
}{
"foo",
"bar",
},
}
とりあえず struct の定義を外に出して、下記のようにしてお茶を濁した。
type TypeB struct {
C string
D string
}
type A struct {
B TypeB
}
var a = A{
TypeB{
"foo",
"bar",
}
}