Missing type in composite literal
do it this way:
type Config struct {
Element struct {
Name string
ConfigPaths []string
}
}
config = Config{}
config.Element.Name = "foo"
config.Element.ConfigPaths = []string{"blah"}
This is simpler imo:
type A struct {
B struct {
Some string
Len int
}
}
a := A{
struct {
Some string
Len int
}{"xxx", 3},
}
fmt.Printf("%+v", a)
The assignability rules are forgiving for anonymous types which leads to another possibility where you can retain the original definition of A
while allowing short composite literals of that type to be written. If you really insist on an anonymous type for the B
field, I would probably write something like:
package main
import "fmt"
type (
A struct {
B struct {
Some string
Len int
}
}
b struct {
Some string
Len int
}
)
func main() {
a := &A{b{"xxx", 3}}
fmt.Printf("%#v\n", a)
}
Playground
Output
&main.A{B:struct { Some string; Len int }{Some:"xxx", Len:3}}