coldfusion
ColdFusion Arrays
Sök…
Syntax
- ArrayNew (dimension, är synkroniserad)
parametrar
| namn | Beskrivning |
|---|---|
| Dimensionera | Antal dimensioner i ny matris: 1, 2 eller 3 |
| isSynchronized | När falskt skapas en osynkroniserad matris, När sant , returnerar funktionen en synkroniserad matris. |
Anmärkningar
I en synkroniserad matris kan fler än två trådar inte komma åt matrisen samtidigt. Andra trådar måste vänta tills den aktiva tråden slutför sitt jobb, vilket resulterar i betydande prestanda.
Under 2016 release av ColdFusion kan du använda en osynkroniserad matris och låta flera trådar komma åt samma arrayobjekt samtidigt.
Skapa matriser
Skapa arrayer uttryckligen med ArrayNew ()
Förklara en matris med ArrayNew-funktionen. Ange antalet dimensioner som ett argument.
- ArrayNew ( dimension ) skapar en matris med 1-3 dimensioner.
- ColdFusion-matriser expanderar dynamiskt när data läggs till.
- ArrayNew () returnerar en matris.
Historia
Introducerad i ColdFusion MX 6
Deklaration
CFML
<!--- One Dimension Array--->
<cfset oneDimensionArray = ArrayNew(1)>
CFScript Observera att du inom en funktion ska använda var scoping. Tidigare versioner av CF krävde att var scoping var det första i en funktion; senare versioner tillåter det var som helst i en funktion.
<cfscript>
oneDimensionArray = ArrayNew(1);
public void function myFunc() {
var oneDimensionArray = ArrayNew(1);
}
</cfscript>
När du har skapat matrisen lägger du till element med elementindexen. Coldfusion Array-indexet börjar från 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>
Använda ArrayAppend ()
Du kan lägga till element i en matris med funktionen ArrayAppend(array, value) .
<cfscript>
ArrayAppend(oneDimensionArray, 1);
ArrayAppend(oneDimensionArray, 'one');
ArrayAppend(oneDimensionArray, '1');
</cfscript>
<cfdump> med <cfdump> :
<cfdump var="#oneDimensionArray#">
Resultat:
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>
Skickar ut innehållet i matrisen med <cfdump>
<cfdump var="#twoDimensionArray#">
Resultat:
Varje element innehåller en annan array som lagrar värdena.
Skapa en-D-grupp implicit
När du skapar en matris implicit, omger parenteser ([]) matrisinnehållet med kommaavskiljare.
<cfset oneDimensionArrayImplicit = [ 1 ,'one','1' ]>
Detta uttalande motsvarar de fyra uttalandena som används för att skapa ovanstående OneDimensionArray. Resultatet är samma när du använder:
<cfdump var="#oneDimensionArrayImplicit#">
Skapa 2-D-array implicit
<cfset twoDimensionArrayImplicit = [[ 1 , 2 ],[ 3 , 4 ],[ 5 , 6 ]]>
Eller:
<cfset firstElement = ["1", "2"]>
<cfset secondElement= ["3", "4"]>
<cfset thirdElement = ["5", "6"]>
<cfset twoDimensionArrayImplicit = [firstElement , secondElement, thirdElement]>
Skickar ut innehållet med
<cfdump var="#twoDimensionArrayImplicit#">
Alternativ explicit förklaring
Du kan också förklara 1 Dimension Array som
<cfset oneDimensionArray = []>
<cfscript>
oneDimensionArray = [];
</cfscript>
Denna deklaration är densamma som för ArrayNew(1) .
Men om du försöker förklara 2 Dimension Array som
<cfset twoDimensionArray =[][]> //Invalid CFML construct
ett fel kommer att uppstå vid bearbetning av denna begäran.
Följande uttalande kommer att behandla begäran:
<cfset twoDimensionArray =[]>
men variabel twoDimensionArray kommer faktiskt inte en Array inom Array (eller 2-Dimension Array). Den innehåller faktiskt struktur inom 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#">
Resultat:
Array i CFScript
<cfscript>
oneDimensionArray = ArrayNew(1);
oneDimensionArray[1] = 1;
oneDimensionArray[2] = 'one';
oneDimensionArray[3] = '1';
</cfscript>
<cfif IsDefined("oneDimensionArray")>
<cfdump var="#oneDimensionArray#">
</cfif>
Resultat:
Vi kan också förklara en enhetsdimension som som:
oneDimensionArray = [];
Alternativt introducerade CF WriteDump() från CF9 som en funktion ekvivalent med <cfdump> -taggen som kan användas i <cfscript> .
<cfscript>
WriteDump(oneDimensionArray);
</cfscript>
På samma sätt för 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#">
Resultat:
Allmän information
Först lite allmän information om hur matriser uppför sig i Coldfusion jämfört med andra programmeringsspråk.
- Arrays kan endast ha numeriska index (om du vill ha ett strängindex använder du
structs istället) - Arrays börjar vid index [1]
- Matriser kan ha en malm fler dimensioner



![två Dimension Array med [] uttrycklig deklaration](http://i.stack.imgur.com/6nHIJ.png)

