Optionale Argumente in Funktionen<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hallo Leute,
Ich habe gerade angefangen, JMP zu verwenden, nachdem ich fast 10 Jahre lang IDL verwendet hatte.
Daher der Übergang vom Experten zum Anfänger.
Ich bin derzeit hauptsächlich dabei, die Skriptsprache zu lernen.
Ich hoffe, Sie verzeihen mir die gelegentliche dumme Frage
Deshalb beginne ich mit einer einfachen Frage:
Was ist der beste Weg, optionale Argumente in Funktionen zu verwenden?
Wenn ich Skripte ausführe, beschweren sie sich, wenn ich weniger als die angegebene Anzahl verwende
der in der Argumentliste der Funktion angegebenen Argumente.
Es wäre denkbar, stattdessen assoziative Arrays als Eingabe zu verwenden,
und optionale Schlüssel enthalten, aber das erfordert, dass der Benutzer dies tut
Erstellen Sie jedes Mal eine, wenn die Funktion aufgerufen wird, was ein wenig erscheint
schwerfällig....
Danke!
Paolo Grigis
ABB Schweiz
Optionale Argumente in FunktionenHallo Paolo
Sie werden wahrscheinlich weitere hilfreiche Antworten erhalten, wenn Sie einige Beispiele für die Art der von Ihnen verwendeten Funktionen nennen können.
Normalerweise verfügen Funktionen über erforderliche Argumente, die in einer bestimmten Reihenfolge analysiert werden müssen. Es gibt jedoch zusätzliche optionale Argumente, die häufig durch Schlüsselwörter angegeben werden und an jeder Position angegeben und weggelassen werden können, wenn sie nicht erforderlich sind.
Soweit mir bekannt ist, ist es nicht möglich, die Argumente als Liste zu analysieren. Sie müssen einzeln angegeben werden, außer natürlich, wenn das Argumentelement selbst eine Liste ist. Es gibt jedoch eine JSL-Funktion namens FUNCTION, mit der Sie benutzerdefinierte Funktionen erstellen können. Ich verwende diese Funktion oft, um eine vorhandene JSL-Funktion zu „umschließen“, damit ich mehr Kontrolle über die Eingabeargumente habe.
Grüße,
Dave
Optionale Argumente in FunktionenPaul
Wenn Sie eine benutzerdefinierte Funktion erstellen, haben Sie die Möglichkeit, Standardwerte für Argumente anzugeben. Wenn Standardwerte angegeben sind, werden die Argumente optional.
Im Beispiel unten ist das dritte Argument also optional und standardmäßig fehlt (angezeigt durch einen Punkt in JSL).
Meine Funktion = Function( {a,b,c=.}, {Default Local},
show(IsMissing(c));
zeige(a,b,c)
);
Meine Funktion( 1, 2 )
Grüße,
Dave
Re: Optional arguments in functionsHi Dave,
thanks for your answer.
That's exactly what I am looking for - optional keywords - only
I am not sure how to implement them in my functions.
For instance, if I am creating a user-defined function called myplot
to do a plot, and I would like to be able to call it using
myplot(x,y)
or
myplot(x,y,xRange,yRange)
(or whatever is the required syntax is to specify xRange and yRange
as keywords).
If xRange and yRange are specified, I will use them, if not
I will compute some default values for them.
My question was how to implement that in my user defined function.
If I use
function({x,y,xRange,yRange},
my commands...
);
it will complain if I call it with only two arguments as in
dummy=myplot(x,y)
and throw an error message about insufficent arguments.
I hope this make it a bit more clear. Maybe I am missing
something obvious but I find the reference for the commands
at the end of the scripting guide somewhat less detailed then
what I am used to.
Paolo Grigis
ABB Switzerland