¿Cómo notación crea automáticamente una estructura anidadaHasta ahora, ha creado las estructuras sólo mediante el uso StructNew (). También se pueden crear estructuras justas mediante el uso de notación de puntos, como sigue:
Esa línea crea una estructura llamada aNewStruct con una subestructura llamado SomeKey que tiene un elemento llamado UnValor con un valor de 1. Observe que los nombres de todas las estructuras de nueva creación y las teclas están todas en mayúsculas, independientemente de la capitalización que se utilizan en el código. Como conveniente ya que este método pueda parecer, tiene un inconveniente. Considere el siguiente fragmento: Después de ejecutar el fragmento anterior, dos teclas de nuevo, el nombre myKey y yourKey, se crean. Supongamos que ahora se intenta llamar el siguiente fragmento de código para crear una estructura anidada nombre myKey: Si la línea anterior había trabajado, habría sobrescribe el valor anterior de simple myKey con una subestructura nombre myKey. Afortunadamente, sin embargo, tratar de sobrescribir una clave simple, con una subestructura arroja un error en ColdFusion MX. Usted se enfrentan a una limitación en la creación de claves de la estructura mediante el uso de este método. ColdFusion MX puede crear estructuras anidadas sólo hasta tres niveles de profundidad en una sola llamada, como en este ejemplo: El intento de crear una clave de más de tres niveles de profundidad le da resultados inesperados. ColdFusion ignora todo excepto los últimos tres llaves. Ejecutar el siguiente código, por ejemplo, salidas de "un valor":
Usted puede, sin embargo, crear estructuras anidadas tan profundamente como usted quiera siempre y cuando no se tratará de ir más de tres niveles más profundos que existe actualmente. A veces los datos sólo es útil si se ordenan en un orden específico. Aunque esto es fácil de hacer con los datos de tabla en una base de datos, clasificación de datos en una estructura de toma un poco más de comprensión y esfuerzo. Digamos que usted tiene una estructura que contiene los precios por libra de frutas diferentes, como sigue: Puede bucle sobre estos precios y salida de ellos, utilizando el código.
El problema aquí es que las estructuras no tienen ningún tipo de orden inherente. Estructura de las claves se almacenan en un orden interno que sólo ColdFusion Server entiende, y si un bucle sobre la estructura, que es el orden que usted ve. El orden en que se insertan las claves ni siquiera importa. StructSort () devuelve una matriz de nombres clave, ordenados por sus valores (no son sus nombres clave). El código utiliza StructSort () para poner la fruta los costos en orden.
La mayor diferencia entre los códigos es el enfoque que cada uno necesita para recorrer la estructura. En el primero, sólo usamos un bucle colección estándar, basándose en lo que ColdFusion para almacenar la estructura in En la segunda, que llamamos StructSort () en primer lugar, que devuelve una matriz de los nombres clave que el siguiente aspecto: 1: Manzanas 2: Limones 3: Melocotones 4: Naranjas 5: Cerezas Estos elementos todavía no parecen estar en un orden determinado, pero mira a los siguientes precios asociados con cada elemento (aunque los valores entre paréntesis no forman parte realmente de la matriz): 1: Manzanas (1,50) 2: Limones (1,65) 3: Melocotones (1,75) 4: Naranjas (1,99) 5: Cerezas (2,25) Aunque los nombres de las teclas aparecen en la matriz, los valores siguen siendo de nuevo en la estructura. Después de llamar a StructSort (), el código recorre keyArray, que contiene los nombres de las claves ordenadas. Durante este ciclo, keyArray [i] contiene el nombre de la clave actual, que a su vez puede ser utilizado para proveer el nombre clave de la estructura FruitCosts. Si usted sigue el motor de procesamiento de ColdFusion a lo largo de paso a paso, la resolución de esta referencia es como sigue: Paso 1: # FruitCosts [keyArray [i]] # Paso 2: # FruitCosts [keyArray [1]] # Paso 3: # FruitCosts [ "Manzanas"] # Resultado: 1,50 Pero lo que si desea ordenar por una clave en una estructura anidada? Hemos modificado la estructura de FruitCosts anteriormente en el artículo usando el siguiente código: Cada elemento de la estructura FruitCosts es una subestructura que contiene dos claves: "libra" (precio por libra) y el "saco" (precio por saco). Así que ahora que tiene este conjunto de estructuras anidadas, ¿cómo ordenarlos por precio por libra? Un cuarto atributo de StructSort () describe un punto de la ruta de acceso a valor de ordenación, como se muestra en el código.
Lo bueno de este método es que puede muy fácilmente cambiar a la clasificación por el precio por saco, como se muestra en el código.
Usted puede ordenar por un número de clave de cualquiera de los niveles de profundidad, añadiendo elementos a la ruta de acceso de puntos: Tenga en cuenta que, si la subclave especificada no existe para cada elemento de nivel superior en la estructura principal, ColdFusion arroja un error. un artículo presentado por Amanda Baker Descargo de responsabilidad:Nuestro sitio web no es responsable por el contenido de este artículo. Webarticles es un recurso de información gratuito. Importante: Este artículo "¿Cómo notación crea automáticamente una estructura anidada" fue traducida por un software automático. Sentimos pena por los errores de ortografía que pueda haber ocurrido. Gracias por su comprensión.
|
|||||
| Online: 329 users browsing the articles directory |
|
|