Est-il possible d'avoir des arguments interchangeables dans une fonction?Par exemple, j'ai une fonction comme ci-dessous:
my_function = Function(
{
M_DATA = Empty(),
M_AGE = Empty()
}, {},
);
est-il possible d'appeler la fonction comme ça
my_function( M_AGE = 12, M_DATA = "Useful info");
L'âge et les données ont été échangés mais la fonction les capturerait-elle correctement?
Re: Est-il possible d'avoir des arguments interchangeables dans une fonction?Je ne pense pas, JMP capture les arguments dans l'ordre défini.
Si vous souhaitez être indépendant sur la commande, vous pouvez utiliser une structure de données plus complexe comme argument, comme un tableau associatif.
Voir l'exemple. 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: Est-il possible d'avoir des arguments interchangeables dans une fonction?Merci @Georg pour ce travail! Ce n'est pas très difficile à mettre en œuvre.