coldfusion
Arreglos ColdFusion
Buscar..
Sintaxis
- ArrayNew (dimension, isSynchronized)
Parámetros
| Nombre | Descripción |
|---|---|
| Dimensión | Número de dimensiones en la nueva matriz: 1, 2 o 3 |
| está sincronizado | Cuando es falso , crea una matriz no sincronizada. Cuando es verdadera , la función devuelve una matriz sincronizada. |
Observaciones
En una matriz sincronizada, más de dos subprocesos no pueden acceder a la matriz simultáneamente. Otros subprocesos tienen que esperar hasta que el subproceso activo complete su trabajo, lo que resulta en un rendimiento significativo.
En la versión ColdFusion 2016, puede usar una matriz no sincronizada y permitir que múltiples hilos accedan al mismo objeto de la matriz simultáneamente.
Creando Arrays
Creando arrays explícitamente usando ArrayNew ()
Declare una matriz con la función ArrayNew. Especifique el número de dimensiones como un argumento.
- ArrayNew ( dimensión ) crea una matriz de 1–3 dimensiones.
- Las matrices de ColdFusion se expanden dinámicamente a medida que se agregan los datos.
- ArrayNew () devuelve una matriz.
Historia
Introducido en ColdFusion MX 6
Declaración
CFML
<!--- One Dimension Array--->
<cfset oneDimensionArray = ArrayNew(1)>
CFScript Tenga en cuenta que dentro de una función debe usar var scoping. Las versiones anteriores de CF requerían que el ámbito var sea lo primero en una función; Las versiones posteriores lo permiten en cualquier lugar en una función.
<cfscript>
oneDimensionArray = ArrayNew(1);
public void function myFunc() {
var oneDimensionArray = ArrayNew(1);
}
</cfscript>
Después de crear la matriz, agregue elementos utilizando los índices de elementos. El índice Coldfusion Array comienza desde 1:
CFML
<cfset oneDimensionArray[1] = 1>
<cfset oneDimensionArray[2] = 'one'>
<cfset oneDimensionArray[3] = '1'>
CFScript
<cfscript>
oneDimensionArray[1] = 1;
oneDimensionArray[2] = 'one';
oneDimensionArray[3] = '1';
</cfscript>
Usando ArrayAppend ()
Puede agregar elementos a una matriz utilizando la función ArrayAppend(array, value) .
<cfscript>
ArrayAppend(oneDimensionArray, 1);
ArrayAppend(oneDimensionArray, 'one');
ArrayAppend(oneDimensionArray, '1');
</cfscript>
<cfdump> contenido de la matriz usando <cfdump> :
<cfdump var="#oneDimensionArray#">
Resultados:
CFML
<!--- Two Dimension Array--->
<cfset twoDimensionArray = ArrayNew(2)>
<cfset twoDimensionArray[1][1] = 1>
<cfset twoDimensionArray[1][2] = 2>
<cfset twoDimensionArray[2][1] = 3>
<cfset twoDimensionArray[2][2] = 4>
CFScript
<cfscript>
twoDimensionArray = ArrayNew(2);
twoDimensionArray[1][1] = 1;
twoDimensionArray[1][2] = 2;
twoDimensionArray[2][1] = 3;
twoDimensionArray[2][2] = 4;
</cfscript>
Salida del contenido de la matriz usando <cfdump>
<cfdump var="#twoDimensionArray#">
Resultado:
Cada elemento contiene otra matriz, que almacenará los valores.
Creando Array 1-D implícitamente
Al crear una matriz implícitamente, los corchetes ([]) rodean el contenido de la matriz con separadores de coma.
<cfset oneDimensionArrayImplicit = [ 1 ,'one','1' ]>
Esta declaración es equivalente a las cuatro declaraciones utilizadas para crear el oneDimensionArray anterior. El resultado es el mismo cuando se usa:
<cfdump var="#oneDimensionArrayImplicit#">
Crear 2-D Array implícitamente
<cfset twoDimensionArrayImplicit = [[ 1 , 2 ],[ 3 , 4 ],[ 5 , 6 ]]>
O:
<cfset firstElement = ["1", "2"]>
<cfset secondElement= ["3", "4"]>
<cfset thirdElement = ["5", "6"]>
<cfset twoDimensionArrayImplicit = [firstElement , secondElement, thirdElement]>
Salida del contenido usando
<cfdump var="#twoDimensionArrayImplicit#">
Declaración Explicita Alternativa
También puedes declarar 1 Dimension Array como
<cfset oneDimensionArray = []>
<cfscript>
oneDimensionArray = [];
</cfscript>
Esta declaración es la misma que la de usar ArrayNew(1) .
Pero si intentas declarar 2 Dimension Array como
<cfset twoDimensionArray =[][]> //Invalid CFML construct
se producirá un error al procesar esta solicitud.
La siguiente declaración procesará la solicitud:
<cfset twoDimensionArray =[]>
pero la variable twoDimensionArray no será realmente una matriz dentro de la matriz (o matriz de 2 dimensiones). En realidad contiene estructura dentro de Array.
<cfset twoDimensionArray =[]>
<cfset twoDimensionArray[1][1] = 1>
<cfset twoDimensionArray[1][2] = 2>
<cfset twoDimensionArray[2][1] = 3>
<cfset twoDimensionArray[2][2] = 4>
<cfdump var="#twoDimensionArray#">
Resultado:
Array en CFScript
<cfscript>
oneDimensionArray = ArrayNew(1);
oneDimensionArray[1] = 1;
oneDimensionArray[2] = 'one';
oneDimensionArray[3] = '1';
</cfscript>
<cfif IsDefined("oneDimensionArray")>
<cfdump var="#oneDimensionArray#">
</cfif>
Resultado:
Además, podemos declarar una matriz de una dimensión como:
oneDimensionArray = [];
Alternativamente, CF introdujo WriteDump() de CF9 como una función equivalente a la etiqueta <cfdump> que se puede usar en <cfscript> .
<cfscript>
WriteDump(oneDimensionArray);
</cfscript>
Del mismo modo, para 2 Dimension Array:
<cfscript>
twoDimensionArray = ArrayNew(2);
twoDimensionArray[1][1] = 1;
twoDimensionArray[1][2] = 2;
twoDimensionArray[2][1] = 3;
twoDimensionArray[2][2] = 4;
</cfscript>
<cfdump var="#twoDimensionArray#">
Resultado:
Información general
Primero, información general sobre cómo se comportan las matrices en Coldfusion en comparación con otros lenguajes de programación.
- Los arreglos solo pueden tener índices numéricos (si desea que un índice de cadena use
structsu lugar) - Las matrices comienzan en el índice [1]
- Las matrices pueden tener una o más dimensiones.



![Dos Dimension Array usando [] declaración explícita](http://i.stack.imgur.com/6nHIJ.png)

