Ist es möglich, austauschbare Argumente in einer Funktion zu haben?Zum Beispiel habe ich folgende Funktion:
my_function = Function(
{
M_DATA = Empty(),
M_AGE = Empty()
}, {},
);
Gibt es eine Möglichkeit, die Funktion so aufzurufen?
my_function( M_AGE = 12, M_DATA = "Useful info");
Alter und Daten wurden vertauscht, aber die Funktion würde sie korrekt erfassen?
Betreff: Ist es möglich, austauschbare Argumente in einer Funktion zu haben?Ich denke nicht, JMP erfasst die Argumente in der definierten Reihenfolge.
Wenn Sie in der Reihenfolge unabhängig sein möchten, können Sie eine komplexere Datenstruktur als Argument verwenden, z. B. das assoziative Array.
Siehe Beispiel. 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 );Betreff: Ist es möglich, austauschbare Argumente in einer Funktion zu haben?Vielen Dank @Georg für diese Arbeit herum! Es ist nicht sehr schwer zu implementieren.