No puedo averiguar cómo inicializar una estructura anidada. Encuentre un ejemplo aquí: http://play.golang.org/p/NL6VXdHrjh
package main
type Configuration struct {
Val string
Proxy struct {
Address string
Port string
}
}
func main() {
c := &Configuration{
Val: "test",
Proxy: {
Address: "addr",
Port: "80",
},
}
}
Respuestas:
Bueno, ¿alguna razón específica para no hacer de Proxy su propia estructura?
De todos modos tienes 2 opciones:
La forma correcta, simplemente mueva el proxy a su propia estructura, por ejemplo:
La forma menos adecuada y fea, pero aún funciona:
fuente
Si no desea ir con una definición de estructura separada para una estructura anidada y no le gusta el segundo método sugerido por @OneOfOne, puede usar este tercer método:
Puedes consultarlo aquí: https://play.golang.org/p/WoSYCxzCF2
fuente
c.Proxy.Address = `127.0.0.1`
c.Proxy.Port = `8080`
¿Hay alguna forma de inicializar esos valores durante la&Configuration{}
asignación?Proxy
como su propia estructura, vea el primer método en la respuesta de @OneOfOneDefina su
Proxy
estructura por separado, fuera deConfiguration
, así:Ver http://play.golang.org/p/7PELCVsQIc
fuente
P Proxy
es una matriz?También tienes esta opción:
fuente
Proxy
es una matriz?Un problema surge cuando desea instanciar un tipo público definido en un paquete externo y ese tipo incrusta otros tipos que son privados.
Ejemplo:
¿Cómo crea una instancia
Duck
en su propio programa? Aquí está lo mejor que se me ocurrió:fuente
cannot refer to unexported field or method
error.También puede asignar
new
e inicializar todos los campos a manoVer en el patio de recreo: https://play.golang.org/p/sFH_-HawO_M
fuente
Puede definir una estructura y crear su objeto en otra estructura como lo he hecho a continuación:
Espero que te haya ayudado :)
fuente
Necesita redefinir la estructura sin nombre durante
&Configuration{}
https://play.golang.org/p/Fv5QYylFGAY
fuente