2011-11-30 6 views
0

몇 가지 매개 변수를 허용하는 몇 가지 기능이 있습니다.모든 매개 변수의 이름을 모르는 채 반복하는 방법

public function somefunc(param1:String, param2:String, param3:String):void{ 

} 

(얼마나 많은 나 자신의 이름을 알고없이) 모든 PARAMS을 반복하는 방법이 자신의 이름을 가진 배열의 어떤 종류에 넣어, 그래서 연관 배열

를 얻을 것 당신은 당신의 함수 인수에 나머지 매개 변수 ( ...)를 사용할 수 있습니다
[ 
param1: "value 1" 
param2: "value 2" 
param3: "value 3" 
] 

답변

4

개체를 arguments 저장하면 인수의 수를 얻기 위해 length 속성을 사용할 수 있습니다 : 기능은 다음과 같습니다. 그러나 그것은 인수의 이름을 제공하지 않습니다. 즉, 이름은 param1, param2 등을 제공하지 않습니다. 단지 값만 제공합니다.

+0

질문을 게시하고 '인수'도 찾은 후 검색 중이었습니다. 나는 그것을 좋아하지만, @package가 제안한'나머지'해결책과 어떻게 다른가요? – sameold

+0

'rest'는 가변 길이 인수가 필요할 때, 즉 매개 변수의 수를 모르는 경우에 더 유용합니다. 'trace' 함수에 대해 생각해보십시오. 길이가 가변적 인 인수를 사용합니다. 즉, 인수를 여러 개 전달할 수 있습니다. 이런 종류의 함수를 작성하려면'rest'가 필요합니다. 해당 함수를 작성하는 동안 함수에 대한 인수의 수를 알고 있으면 나머지는 필요하지 않을 수 있습니다. – taskinoor

2

은 다음과 같이, 그들을 통해 인수 금액 및 루프를 받아 목록 :

public function somefunc(param1:String, param2:String, param3:String, ... rest):void { 
    for (var i:int = 0; i < rest.length; i++) { 
     trace(rest[i]); 
    } 
} 

그리고 당신의 전화 함수의 인수

somefunc(param1, param2, param3, param4, param5, ect); 
+0

정답입니다. 타입을 안전하게하려면'rest : *'를 사용해야합니다. – weltraumpirat

+0

하지만 for 루프를 수행 할 필요는 없습니다. 이미 모든 매개 변수가있는'arguments' 객체가 있습니다 : http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3 /arguments.html – pkyeck

관련 문제