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:

Eén dimensie Array Dump-resultaat

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:

Tweedimensionaal Array Dump-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#">

Impliciete tweedimensioneringsmatrix

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:

two Dimension Array met behulp van [] expliciete verklaring

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:

Matrix in CFSCRIPT

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:

Tweedimensionale array in CFScript

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 struct s)
  • Arrays beginnen bij index [1]
  • Arrays kunnen een of meer dimensies hebben


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow