¿Es posible tener argumentos intercambiables en una función?Por ejemplo, tengo una función como la siguiente:
my_function = Function(
{
M_DATA = Empty(),
M_AGE = Empty()
}, {},
);
¿Hay alguna manera de llamar a la función de esta manera?
my_function( M_AGE = 12, M_DATA = "Useful info");
¿La edad y los datos se intercambiaron pero la función lo capturaría correctamente?
Re: ¿Es posible tener argumentos intercambiables en una función?No lo creo, JMP captura los argumentos en el orden definido.
Si desea ser independiente en el orden, puede utilizar una estructura de datos más compleja como argumento, como la matriz asociativa.
Ver ejemplo. 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 );Re: ¿Es posible tener argumentos intercambiables en una función?Gracias @Georg para este trabajo! No es muy difícil de implementar.