함수에서 교환 가능한 인수를 가질 수 있습니까?예를 들어 다음과 같은 기능이 있습니다.
my_function = Function(
{
M_DATA = Empty(),
M_AGE = Empty()
}, {},
);
이처럼 함수를 호출 할 수있는 방법이 있습니까?
my_function( M_AGE = 12, M_DATA = "Useful info");
연령과 데이터가 바뀌었지만 기능이 올바르게 캡처합니까?
다시 : 함수에서 교환 가능한 인수를 가질 수 있습니까?그렇게 생각하지 않습니다. JMP는 정의 된 순서로 인수를 캡처합니다.
순서에 독립적이기를 원한다면 연관 배열과 같이보다 복잡한 데이터 구조를 인수로 사용할 수 있습니다.
예를 참조하십시오. BR
// function with single arguments
my_function = Function( {M_DATA = Empty(), M_AGE = Empty()},
{},
Show( M_DATA, M_AGE )
);
Print( "swapped arguments are ignored" );
my_function( M_AGE = 12, M_DATA = "Hello" );
// function with associative array AA
my_function_AA = Function( {Local_AA = Empty()},
{},
keys = Local_AA << get keys;
For( i = 1, i <= N Items( keys ), i++,
Show( keys[i], Local_AA[keys[i]] )
);
);
AA = Associative Array( {{"M_AGE", 12}, {"M_DATA", "Hello"}} );
my_function_AA( AA );다시 : 함수에서 교환 가능한 인수를 가질 수 있습니까?감사 G 이 작업을 위해! 구현하기가 그리 어렵지 않습니다.