수색…


통사론

  • ArrayNew (dimension, isSynchronized)

매개 변수

이름 기술
치수 새 배열의 차원 수 : 1, 2 또는 3
isSynchronized false 이면 비동기 배열을 만듭니다. 참이면 함수는 동기화 된 배열을 반환합니다.

비고

동기화 된 배열에서 두 개 이상의 스레드가 배열에 동시에 액세스 할 수 없습니다. 다른 스레드는 활성 스레드가 작업을 완료 할 때까지 기다려야하므로 상당한 성능이 발생합니다.

ColdFusion 릴리스에서는 비동기 배열을 사용하여 여러 스레드가 동일한 배열 객체에 동시에 액세스 할 수 있습니다.

배열 만들기

ArrayNew ()를 사용하여 명시 적으로 배열 만들기

ArrayNew 함수를 사용하여 배열을 선언하십시오. 차원의 수를 인수로 지정하십시오.

  • ArrayNew ( dimension )은 1-3 차원의 배열을 만듭니다.
  • ColdFusion 배열은 데이터가 추가되면 동적으로 확장됩니다.
  • ArrayNew ()는 배열을 반환합니다.

역사

ColdFusion MX 6에서 소개되었습니다.

선언

CFML

<!--- One Dimension Array--->
<cfset oneDimensionArray = ArrayNew(1)>

CFScript 함수 내에서는 var 범위 지정을 사용해야합니다. 이전 버전의 CF에서는 함수에서 var scoping이 가장 먼저 필요했습니다. 이후 버전에서는 함수의 어느 위치에서나 사용할 수 있습니다.

<cfscript>
    oneDimensionArray = ArrayNew(1);

    public void function myFunc() { 
        var oneDimensionArray = ArrayNew(1);
    } 
</cfscript>

배열을 만든 후 요소 인덱스를 사용하여 요소를 추가합니다. Coldfusion Array 인덱스는 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 () 사용

ArrayAppend(array, value) 함수를 사용하여 배열에 요소를 추가 할 수 있습니다.

<cfscript>
    ArrayAppend(oneDimensionArray, 1);
    ArrayAppend(oneDimensionArray, 'one');
    ArrayAppend(oneDimensionArray, '1');
</cfscript>

<cfdump> 사용하여 배열 내용을 출력하십시오.

<cfdump var="#oneDimensionArray#">

결과 :

하나의 차원 배열 덤프 결과

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>

<cfdump> 사용하여 배열의 내용 출력하기

<cfdump var="#twoDimensionArray#">

결과:

2 차원 배열 덤프 결과

각 요소는 값을 저장하는 다른 Array를 포함합니다.

암시 적으로 1-D 배열 만들기

암시 적으로 배열을 만들 때 대괄호 ([])는 쉼표 구분 기호로 배열 내용을 묶습니다.

<cfset oneDimensionArrayImplicit = [ 1 ,'one','1' ]>

이 문은 위의 oneDimensionArray를 만드는 데 사용 된 네 개의 문과 동일합니다. 결과는 다음을 사용할 때 동일합니다.

<cfdump var="#oneDimensionArrayImplicit#">

암시 적으로 2 차원 배열 만들기

<cfset twoDimensionArrayImplicit = [[ 1 , 2 ],[ 3 , 4 ],[ 5 , 6 ]]>

또는:

<cfset firstElement = ["1", "2"]> 
<cfset secondElement= ["3", "4"]> 
<cfset thirdElement = ["5", "6"]> 
<cfset twoDimensionArrayImplicit = [firstElement , secondElement, thirdElement]>

내용을 사용하여 출력

<cfdump var="#twoDimensionArrayImplicit#">

암시 적으로 두 개의 차원 배열

대체 명시 적 선언

또한 1 차원 배열을 다음과 같이 선언 할 수 있습니다.

<cfset oneDimensionArray = []>

<cfscript>
    oneDimensionArray = [];
</cfscript>

이 선언은 ArrayNew(1) 을 사용하는 것과 동일합니다.

그러나 2 Dimension Array를 다음과 같이 선언하려고하면

<cfset twoDimensionArray =[][]>    //Invalid CFML construct

이 요청을 처리하는 중에 오류가 발생합니다.

다음 진술은 요청을 처리합니다.

<cfset twoDimensionArray =[]>

하지만 변수 twoDimensionArray 는 실제로 Array (또는 2-Dimension Array) 내의 Array가 아닙니다. 실제로 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#">

결과:

[] 명시 적 선언을 사용하는 2 개의 Dimension Array

CFScript의 배열

<cfscript>
    oneDimensionArray = ArrayNew(1);
    oneDimensionArray[1] = 1;
    oneDimensionArray[2] = 'one';
    oneDimensionArray[3] = '1';
</cfscript>

<cfif IsDefined("oneDimensionArray")>
    <cfdump var="#oneDimensionArray#">
</cfif>

결과:

CFSCRIPT의 배열

또한 하나의 차원 배열을 다음과 같이 선언 할 수 있습니다.

oneDimensionArray = [];

또는 CF는 <cfscript> 에서 사용할 수있는 <cfdump> 태그와 동일한 기능으로 CF9 에서 WriteDump() 를 도입 WriteDump() .

<cfscript>
    WriteDump(oneDimensionArray);
</cfscript>

마찬가지로 2 차원 배열의 경우 :

<cfscript>
    twoDimensionArray = ArrayNew(2);
    twoDimensionArray[1][1] = 1;
    twoDimensionArray[1][2] = 2;
    twoDimensionArray[2][1] = 3;
    twoDimensionArray[2][2] = 4;
</cfscript>
<cfdump var="#twoDimensionArray#">

결과:

CFScript의 2 차원 배열

일반 정보

ColdFusion에서 배열이 다른 프로그래밍 언어와 비교하여 어떻게 작동하는지에 대한 일반적인 정보.

  • 배열은 숫자 인덱스 만 가질 수 있습니다 (문자열 인덱스에 struct s를 대신 사용하려는 경우)
  • 배열은 인덱스 [1]에서 시작합니다.
  • 배열은 하나 이상의 차원을 가질 수 있습니다.


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow