struct - numeros - Falta el tipo en literal compuesto
numeros escrito en letras (1)
Las reglas de asignabilidad son de perdón para los tipos anónimos, lo que conduce a otra posibilidad en la que puede conservar la definición original de A
y permitir que se escriban literales compuestos de ese tipo. Si realmente insistes en un tipo anónimo para el campo B
, probablemente escribiría algo como:
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)
}
Salida
&main.A{B:struct { Some string; Len int }{Some:"xxx", Len:3}}
type A struct {
B struct {
Some string
Len int
}
}
Pregunta simple. ¿Cómo inicializar esta estructura? Me gustaría hacer algo como esto:
a := &A{B:{Some: "xxx", Len: 3}}
Se espera un error:
missing type in composite literal
Claro, puedo crear una estructura B separada e inicializarla de esta manera:
type Btype struct {
Some string
Len int
}
type A struct {
B Btype
}
a := &A{B:Btype{Some: "xxx", Len: 3}}
Pero no es tan útil como la primera vía. ¿Hay un atajo para inicializar la estructura anónima?