È possibile avere argomenti intercambiabili in una funzione?Ad esempio ho una funzione come di seguito:
my_function = Function(
{
M_DATA = Empty(),
M_AGE = Empty()
}, {},
);
c'è un modo per chiamare la funzione in questo modo
my_function( M_AGE = 12, M_DATA = "Useful info");
Età e dati sono stati scambiati ma la funzione li catturerebbe correttamente?
Ri: È possibile avere argomenti intercambiabili in una funzione?Non credo, JMP acquisisce gli Argomenti nell'ordine definito.
Se desideri essere indipendente nell'ordine, puoi utilizzare una struttura di dati più complessa come Argument, come l'array associativo.
Vedi esempio. 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 );Ri: È possibile avere argomenti intercambiabili in una funzione?Grazie @Georg per questo lavoro in giro! Non è molto difficile da implementare.