martes, 30 de octubre de 2018

Arrays en Go: estructuras

Los tipos definidos, como las estructuras, pueden ser utilizados también para crear colecciones, con lo que las posibilidades en la gestión de datos aumentan.

Arrays de estructuras

Vamos a tratar una colección de empleados, y para ello, en lugar de tener los diferentes datos de cada empleado en un array propio, vamos a definir una estructura de datos y crear un array basado en dicha estructura.

package main

import "fmt"

func main() {

   // Definicion de la estructura Empleado
   type Empleado struct {
      nombre   string
      edad     int
      esCasado bool
   }

   // Declaracion del array de estructura
   var empleados [3]Empleado

   // Asignacion campo a campo
   empleados[0].nombre = "Rafael"
   empleados[0].edad = 47
   empleados[0].esCasado = true

   // Asignacion mediante un objeto JSON
   empleados[1] = Empleado{
      nombre:   "Eduardo",
      edad:     48,
      esCasado: false,
   }

   // Asignacion mediante un objeto JSON
   empleados[2] = Empleado{
      nombre:   "Nerea",
      edad:     17,
      esCasado: false}

   // Visualizacion de resultados
   fmt.Println("Array empleados = ", empleados)
   fmt.Println("Primer empleado: ", empleados[0])
   fmt.Println("Nombre primer empleado: ", empleados[0].nombre)
}

Por convención, para una lectura natural, el nombre de una estructura se declara con la primera letra en mayúscula y en singular, ya que es el molde de cada uno de las entidades de datos que después se generarán.

El nombre del array se declara en plural, ya que contendrá varios empleados.

Para la asignación de los tres empleados hemos utilizado diferentes formatos. El primero es accediendo individualmente a cada uno de sus campos, pero previamente hay que identificar el elemento del array a través de su índice.

El segundo y tercer elemento se asigna mediante un objeto en formato JSON, y para ello hay que referenciar el elemento del array mediante su índice, y, en la asignación, especificar el nombre de la estructura antes del objeto JSON (el cual se escribe entre llaves), para obligar a que dicho objeto JSON tenga el mismo tipo que la estructura Empleado, es decir, que contenga exactamente los mismos campos y el mismo tipo.

La diferencia de asignación de datos entre el segundo y tercer elemento es que el último campo del segundo elemento termina con una coma y la llave está en la línea siguiente, mientras que el último campo tercer elemento termina con la llave de cierre del elemento JSON.

Por último, se visualiza el contenido del array, el contenido del primer elemento del array y el valor del campo nombre del primer elemento del array. El resultado será el siguiente:

$ go run arrays.go
Array empleados =  [{Rafael 47 true} {Eduardo 48 false} {Nerea 17 false}]
Primer empleado:  {Rafael 47 true}
Nombre primer empleado:  Rafael

Enlaces de interés

No hay comentarios:

Publicar un comentario