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
- Go by example - Arrays: https://gobyexample.com/arrays
- Golang book - Arrays: https://www.golang-book.com/books/intro/6#section1
No hay comentarios:
Publicar un comentario