¿Cómo crear una instancia de una estructura en Go?
Una vez que se ha declarado una estrucutura. Esta puede instancearse de diferentes formas.
package main
import "fmt"
type Pais struct {
Nombre string
Capital string
Idioma string
Poblacion int
}
func main() {
var belice Pais
fmt.Printf("%+v\n", belice)
}
Esto crea una instancia con todos los valores inicializados en su valor 0.
{Nombre: Capital: Idioma: Poblacion:0}
package main
import "fmt"
type Pais struct {
Nombre string
Capital string
Idioma string
Poblacion int
}
func main() {
panama := Pais{
Nombre: "Panama",
Capital: "Ciudad de Panama",
Idioma: "Español",
Poblacion: 4170607,
}
fmt.Println("Nombre: ", panama.Nombre)
fmt.Println("Capital: ", panama.Capital)
fmt.Println("Idioma: ", panama.Idioma)
fmt.Println("Población: ", panama.Poblacion)
}
¿Cómo se accede a las propiedades de una estructura en Go?
Las propiedades de una estructura se pueden acceder con la sintáxis de punto. Para hacer una propiedad pública (exportable fuera del paquete), esta debe ser mayúscula.
Mutabilidad en las estructuras de Go
Los valores de una propiedad (campo) pueden ser mutables, es decir que pueden ser modificacos. Si por ejemplo se quiere cambiar el nombre de la capital, esto es posible. Sin embargo no es posible cambiar el tipo del campo.