coldfusion
ColdFusion 배열
수색…
통사론
- 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#">
결과:
각 요소는 값을 저장하는 다른 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#">
결과:
CFScript의 배열
<cfscript>
oneDimensionArray = ArrayNew(1);
oneDimensionArray[1] = 1;
oneDimensionArray[2] = 'one';
oneDimensionArray[3] = '1';
</cfscript>
<cfif IsDefined("oneDimensionArray")>
<cfdump var="#oneDimensionArray#">
</cfif>
결과:
또한 하나의 차원 배열을 다음과 같이 선언 할 수 있습니다.
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#">
결과:
일반 정보
ColdFusion에서 배열이 다른 프로그래밍 언어와 비교하여 어떻게 작동하는지에 대한 일반적인 정보.
- 배열은 숫자 인덱스 만 가질 수 있습니다 (문자열 인덱스에
structs를 대신 사용하려는 경우) - 배열은 인덱스 [1]에서 시작합니다.
- 배열은 하나 이상의 차원을 가질 수 있습니다.



![[] 명시 적 선언을 사용하는 2 개의 Dimension Array](http://i.stack.imgur.com/6nHIJ.png)

