Un componente de diccionario es un componente que está siempre disponible; no se define. Una variable basada en un componente de diccionario puede incluir un conjunto de claves y los valores relacionados y puede añadir y eliminar entradas de clave y valor en tiempo de ejecución. Las entradas se tratan como campos en un registro.
row Dictionary { ID = 5, lastName = "Twain", firstName = "Mark", };
Cuando incluye entradas en la declaración, cada nombre de clave es un identificador EGL que debe ajustarse al convenio de denominación de EGL. Cuando añade entradas en tiempo de ejecución, tiene más flexibilidad; puede especificar un literal de serie, una constante o una variable y en ese caso, el contenido puede ser una palabra reservada de EGL o puede incluir caracteres que no serían válidos en un identificador. Para conocer más detalles, consulte la sección Sintaxis de corchetes para el acceso dinámico.
row.age = 30; row["Credit"] = 700; row["Initial rating"] = 500
row.lastname = "Clemens";
lastname String age, credit, firstCredit int; lastname = row.lastname; age = row.age; credit = row.credit; credit = row["Credit"]; firstCredit = row["Initial rating"];
Record myRecordPart x int; end
El código siguiente coloca una variable de tipo myRecordPart en el diccionario y después cambia un valor en la variable original:
testValue int; myRecord myRecordPart; // establece un valor de variable y coloca // una copia de la variable en el diccionario. myRecord.x = 4; row Dictionary { theRecord myRecord; } // Coloca un valor nuevo en el registro original. myRecord.x = 700; // Accede a la copia del diccionario del registro, // asignando 4 a testValue. testValue = row.theRecord.x;
row Dictionary { age = 30 }; newRow Dictionary { }; newRow = row // se resuelve en true if (newRow.age == 30) ; end
Un conjunto de propiedades en la declaración afectan al proceso del diccionario. Un conjunto de funciones específicas de diccionario proporcionan datos y servicios al código.
row Dictionary { // propiedades caseSensitive = no, ordering = none, // campos ID = 5, lastName = "Twain", firstName = "Mark" age = 30; };
row Dictionary { // propiedades caseSensitive = no, ordering = none, // campos row.caseSensitive = "yes" row.ordering = 50, age = 30 };
age = row.age; age = row.AGE; age = row["aGe"];
age = row.age; age = row.AGE; age = row["aGe"];
El valor de la propiedad caseSensitive afecta al comportamiento de varias de las funciones descrita en una sección posterior.
Las opciones son las siguientes:
Cuando el valor de la propiedad ordering es None, el orden de las claves (cuando se invoca la función getKeys) puede no ser igual que el orden de los valores (cuando se invoca la función getValues).
if (row.containsKey(age)) ; end
dictionaryName.containsKey(clave String in) returns (Boolean)
Esta función devuelve true o false, dependiendo de si la serie de entrada (clave) es una clave en el diccionario. Si la propiedad del diccionario caseSensitive se establece en no, no se tienen en cuenta las mayúsculas/minúsculas, de lo contrario la función busca una coincidencia exacta, incluyendo las mayúsculas/minúsculas.
containsKey solo se utiliza en una expresión lógica.
dictionaryName.getKeys ( ) returns (String[ ])
Esta función devuelve una matriz de series, cada una de las cuales es una clave en el diccionario.
Si la propiedad del diccionario caseSensitive se establece en no, cada clave devuelta está en minúsculas, de lo contrario cada clave devuelta está en mayúsculas o minúsculas según lo estuviera la clave en la que estaba almacenada.
Si la propiedad de diccionario ordering se establece en no, no puede fiarse del orden de las claves devueltas, de lo contrario el orden es el especificado en la descripción de esa propiedad.
dictionaryName.getValues ( ) returns (ANY[ ])
Esta función devuelve una matriz de valores de cualquier tipo. Cada valor está asociado con una clave del diccionario.
nombreDiccionario.insertAll(diccionariOrigen Dictionary in)
Esta función actúa como si una serie de sentencias de asignación copiara las entradas de clave y valor del diccionario de origen (diccionarioOrigen) al destino, que es el diccionario cuyo nombre califica el nombre de función.
Si una clave está en el origen y no en el destino, se copia la entrada de clave y valor en el destino. Si una clave está tanto en el origen como en el destino, el valor de la entrada origen altera temporalmente la entrada en el destino. La determinación de si una clave del destino coincide con una del origen se ve afectada por el valor de la propiedad caseSensitive en cada diccionario.
nombreDiccionario.removeElement(clave String in)
Esta función elimina la entrada cuya serie de entrada (clave) es una clave del diccionario. Si la propiedad del diccionario caseSensitive se establece en no, no se tienen en cuenta las mayúsculas/minúsculas, de lo contrario la función busca una coincidencia exacta, incluyendo las mayúsculas/minúsculas.
nombreDiccionario.removeAll( )
Esta función elimina todas las entradas de clave y valor del diccionario pero no tiene efecto sobre las propiedades del diccionario.
nombreDiccionario.size( ) returns (INT)
Devuelve un entero que indica el número de entradas de clave y valor en el diccionario.
Conceptos relacionados
Componentes
Referencias a variables en EGL
Consulta relacionada
Expresiones lógicas