Tabla de Datos

Las tablas de datos pueden ser utilizadas para almacenar datos estructurados que serán utilizados en otras funciones. Son similares a un almacén de clave-valor.

Descripción general

Las tablas de datos pueden tener una cantidad arbitraria de filas y columnas. Cada fila tiene una clave única. Cada columna está nombrada y tipificada.

En la siguiente imagen se presenta un ejemplo de una tabla de datos básica:

tabla de datos de ejemplo

La tabla almacena dos columnas de datos que pueden almacenar enteros,val1 y val2, respectivamente. Cada fila tiene una clave única.

Buscar por clave

Los valores almacenados en cada celda de una tabla de datos pueden ser accedidos haciendo referencia a las claves nombradas de manera única definidas en el lado izquierdo de la tabla. Los datos de la columna pueden ser extraídos haciendo referencia al nombre de la columna.

A continuación se presenta un ejemplo de tal expresión:

val result: int = ExampleDataTable.keyA.val2

El valor del resultado sería 2.

Buscar por Búsqueda

Las tablas de datos tienen una característica adicional que permite a un usuario seleccionar una fila al coincidir con los datos almacenados en la tabla en una columna especificada.

Si dos filas tienen el mismo valor almacenado, entonces se emparejará la primera al realizar una búsqueda. Se recomienda asegurar que los valores sean únicos en las columnas utilizadas para búsquedas.

La imagen a continuación muestra la misma tabla de datos definida anteriormente con las búsquedas habilitadas:

ejemplo de tabla de datos con búsqueda habilitada

El fragmento de código a continuación demuestra cómo se puede realizar una búsqueda en la tabla de datos:

val result: int = (ExampleDataTable.lookupBy<val1>(3)?: ExampleDataTable.keyA).val2

Esto parece más complejo que el ejemplo de "Buscar por Clave". La razón por la cual es que lookupBy devuelve un opcional de tipo ExampleDataTable (una fila de la tabla). Si el opcional está vacío, entonces se establece por defecto en el keyA fila.

Lo anterior podría reescribirse como:

val result: int = (ExampleDataTable.lookupBy<val1>(3)!.val2

El ! aleja la escritura opcional. Sin embargo, esto puede resultar en una excepción de puntero nulo al intentar buscar un valor que no existe.

Recursos Adicionales-Creando una Tabla de Datos