coldfusion
ColdFusion-arrays
Zoeken…
Syntaxis
- ArrayNew (dimensie, is gesynchroniseerd)
parameters
| Naam | Beschrijving |
|---|---|
| Dimensie | Aantal dimensies in nieuwe array: 1, 2 of 3 |
| isSynchronized | Wanneer false , wordt een niet-gesynchroniseerde array gemaakt. Wanneer true , retourneert de functie een gesynchroniseerde array. |
Opmerkingen
In een gesynchroniseerde array hebben meer dan twee threads geen toegang tot de array tegelijkertijd. Andere threads moeten wachten tot de actieve thread zijn taak heeft voltooid, wat resulteert in aanzienlijke prestaties.
In de ColdFusion-release 2016 kunt u een niet-gesynchroniseerde array gebruiken en meerdere threads tegelijkertijd toegang geven tot hetzelfde arrayobject.
Arrays maken
Arrays expliciet maken met ArrayNew ()
Declareer een array met de functie ArrayNew. Geef het aantal dimensies op als argument.
- ArrayNew ( dimensie ) maakt een reeks van 1-3 dimensies.
- ColdFusion-arrays breiden dynamisch uit wanneer gegevens worden toegevoegd.
- ArrayNew () retourneert een array.
Geschiedenis
Geïntroduceerd in ColdFusion MX 6
Verklaring
CFML
<!--- One Dimension Array--->
<cfset oneDimensionArray = ArrayNew(1)>
CFScript Merk op dat u binnen een functie var scoping moet gebruiken. In eerdere versies van CF was var-scoping het eerste in een functie; latere versies staan het overal in een functie toe.
<cfscript>
oneDimensionArray = ArrayNew(1);
public void function myFunc() {
var oneDimensionArray = ArrayNew(1);
}
</cfscript>
Nadat u de array hebt gemaakt, voegt u elementen toe met behulp van de elementindexen. De Coldfusion Array-index begint vanaf 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>
ArrayAppend () gebruiken
U kunt elementen aan een array toevoegen met de functie ArrayAppend(array, value) .
<cfscript>
ArrayAppend(oneDimensionArray, 1);
ArrayAppend(oneDimensionArray, 'one');
ArrayAppend(oneDimensionArray, '1');
</cfscript>
<cfdump> de array-inhoud uit met <cfdump> :
<cfdump var="#oneDimensionArray#">
resultaten:
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>
De inhoud van de array uitvoeren met <cfdump>
<cfdump var="#twoDimensionArray#">
Resultaat:
Elk element bevat een andere array, waarin de waarden worden opgeslagen.
Impliciet 1-D-array maken
Wanneer impliciet een array wordt gemaakt, omringen de haakjes ([]) de arrayinhoud met komma-scheidingstekens.
<cfset oneDimensionArrayImplicit = [ 1 ,'one','1' ]>
Deze instructie is gelijk aan de vier instructies die zijn gebruikt om de bovenstaande oneDimensionArray te maken. Het resultaat is hetzelfde bij gebruik van:
<cfdump var="#oneDimensionArrayImplicit#">
Maak impliciet 2-D-array
<cfset twoDimensionArrayImplicit = [[ 1 , 2 ],[ 3 , 4 ],[ 5 , 6 ]]>
Of:
<cfset firstElement = ["1", "2"]>
<cfset secondElement= ["3", "4"]>
<cfset thirdElement = ["5", "6"]>
<cfset twoDimensionArrayImplicit = [firstElement , secondElement, thirdElement]>
De inhoud uitvoeren met
<cfdump var="#twoDimensionArrayImplicit#">
Alternatieve expliciete verklaring
Je kunt ook 1 Dimension Array declareren als
<cfset oneDimensionArray = []>
<cfscript>
oneDimensionArray = [];
</cfscript>
Deze verklaring is dezelfde als die voor het gebruik van ArrayNew(1) .
Maar als je 2 Dimension Array probeert aan te geven als
<cfset twoDimensionArray =[][]> //Invalid CFML construct
er zal een fout optreden tijdens het verwerken van dit verzoek.
Volgende verklaring zal het verzoek verwerken:
<cfset twoDimensionArray =[]>
maar variabele twoDimensionArray zal in feite geen Array binnen Array (of 2-Dimension Array) zijn. Het bevat eigenlijk structuur binnen 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#">
Resultaat:
Matrix in CFScript
<cfscript>
oneDimensionArray = ArrayNew(1);
oneDimensionArray[1] = 1;
oneDimensionArray[2] = 'one';
oneDimensionArray[3] = '1';
</cfscript>
<cfif IsDefined("oneDimensionArray")>
<cfdump var="#oneDimensionArray#">
</cfif>
Resultaat:
We kunnen ook een one-dimensie-array declareren als:
oneDimensionArray = [];
Als alternatief introduceerde CF WriteDump() van CF9 als een functie die equivalent is aan de tag <cfdump> die kan worden gebruikt in <cfscript> .
<cfscript>
WriteDump(oneDimensionArray);
</cfscript>
Evenzo voor 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#">
Resultaat:
Algemene informatie
Eerst wat algemene informatie over hoe arrays zich in Coldfusion gedragen in vergelijking met andere programmeertalen.
- Arrays kunnen alleen numerieke indexen hebben (als u een stringindex wilt gebruiken, gebruikt u in plaats daarvan
structs) - Arrays beginnen bij index [1]
- Arrays kunnen een of meer dimensies hebben



![two Dimension Array met behulp van [] expliciete verklaring](http://i.stack.imgur.com/6nHIJ.png)

