coldfusion
Array ColdFusion
Ricerca…
Sintassi
- ArrayNew (dimensione, isSynchronized)
Parametri
| Nome | Descrizione |
|---|---|
| Dimensione | Numero di dimensioni nel nuovo array: 1, 2 o 3 |
| IsSynchronized | Quando falso , crea un array non sincronizzato, quando è true , la funzione restituisce un array sincronizzato. |
Osservazioni
In una matrice sincronizzata, più di due thread non possono accedere all'array contemporaneamente. Gli altri thread devono attendere fino a quando il thread attivo non completa il suo lavoro, con conseguenti prestazioni significative.
Nel 2016, con ColdFusion, è possibile utilizzare una matrice non sincronizzata e consentire a più thread di accedere contemporaneamente allo stesso oggetto array.
Creare matrici
Creazione di array in modo esplicito utilizzando ArrayNew ()
Dichiara un array con la funzione ArrayNew. Specificare il numero di dimensioni come argomento.
- ArrayNew ( dimensione ) crea una matrice di 1-3 dimensioni.
- Gli array ColdFusion si espandono dinamicamente man mano che i dati vengono aggiunti.
- ArrayNew () restituisce una matrice.
Storia
Introdotto in ColdFusion MX 6
Dichiarazione
CFML
<!--- One Dimension Array--->
<cfset oneDimensionArray = ArrayNew(1)>
CFScript Si noti che all'interno di una funzione si dovrebbe usare var scope. Le versioni precedenti di CF richiedevano che var scope fosse la prima cosa in una funzione; versioni successive lo consentono ovunque in una funzione.
<cfscript>
oneDimensionArray = ArrayNew(1);
public void function myFunc() {
var oneDimensionArray = ArrayNew(1);
}
</cfscript>
Dopo aver creato la matrice, aggiungi gli elementi usando gli indici degli elementi. L'indice Coldfusion Array parte da 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>
Utilizzo di ArrayAppend ()
È possibile aggiungere elementi a un array utilizzando la funzione ArrayAppend(array, value) .
<cfscript>
ArrayAppend(oneDimensionArray, 1);
ArrayAppend(oneDimensionArray, 'one');
ArrayAppend(oneDimensionArray, '1');
</cfscript>
<cfdump> contenuto dell'array usando <cfdump> :
<cfdump var="#oneDimensionArray#">
risultati:
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>
Emissione del contenuto dell'array usando <cfdump>
<cfdump var="#twoDimensionArray#">
Risultato:
Ogni elemento contiene un'altra matrice, che memorizzerà i valori.
Creazione di array 1-D in modo implicito
Quando si crea un array implicitamente, le parentesi ([]) circondano il contenuto dell'array con separatori di virgola.
<cfset oneDimensionArrayImplicit = [ 1 ,'one','1' ]>
Questa istruzione è equivalente alle quattro istruzioni utilizzate per creare il file oneDimensionArray sopra. Il risultato è lo stesso quando si usa:
<cfdump var="#oneDimensionArrayImplicit#">
Crea array 2-D in modo implicito
<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]>
Esecuzione del contenuto utilizzando
<cfdump var="#twoDimensionArrayImplicit#">
Dichiarazione esplicita alternativa
Inoltre puoi dichiarare 1 Dimensione Matrice come
<cfset oneDimensionArray = []>
<cfscript>
oneDimensionArray = [];
</cfscript>
Questa dichiarazione è la stessa di quella di ArrayNew(1) .
Ma se provate a dichiarare 2 Dimension Array come
<cfset twoDimensionArray =[][]> //Invalid CFML construct
si verificherà un errore durante l'elaborazione di questa richiesta.
La seguente dichiarazione elaborerà la richiesta:
<cfset twoDimensionArray =[]>
ma variable twoDimensionArray non sarà in realtà una matrice all'interno di Array (o Array a 2 dimensioni). In realtà contiene una struttura all'interno di 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#">
Risultato:
Matrice in CFScript
<cfscript>
oneDimensionArray = ArrayNew(1);
oneDimensionArray[1] = 1;
oneDimensionArray[2] = 'one';
oneDimensionArray[3] = '1';
</cfscript>
<cfif IsDefined("oneDimensionArray")>
<cfdump var="#oneDimensionArray#">
</cfif>
Risultato:
Inoltre, possiamo dichiarare una matrice di una dimensione come:
oneDimensionArray = [];
In alternativa, CF ha introdotto WriteDump() da CF9 come una funzione equivalente al tag <cfdump> che può essere utilizzato in <cfscript> .
<cfscript>
WriteDump(oneDimensionArray);
</cfscript>
Allo stesso modo, per la matrice di 2 dimensioni:
<cfscript>
twoDimensionArray = ArrayNew(2);
twoDimensionArray[1][1] = 1;
twoDimensionArray[1][2] = 2;
twoDimensionArray[2][1] = 3;
twoDimensionArray[2][2] = 4;
</cfscript>
<cfdump var="#twoDimensionArray#">
Risultato:
Informazione generale
Prima alcune informazioni generali su come si comportano gli array in Coldfusion rispetto ad altri linguaggi di programmazione.
- Le matrici possono avere solo indici numerici (se si desidera avere un indice di stringa utilizzare invece
structs) - Gli array iniziano all'indice [1]
- Le matrici possono avere una o più dimensioni



![two Dimension Array usando [] dichiarazione esplicita](http://i.stack.imgur.com/6nHIJ.png)

