Uso de estructuras

¿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.