Ответ 1
правила присваивания прощаются за анонимные типы, что приводит к другой возможности, когда вы можете сохранить исходное определение A
, позволяя коротким композитным литералам этого типа быть написано. Если вы действительно настаиваете на анонимном типе для поля B
, я бы, вероятно, написал бы что-то вроде:
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)
}
Выход
&main.A{B:struct { Some string; Len int }{Some:"xxx", Len:3}}