JMP-Klassenmethoden behandeln Argumente als KlassenmitgliederHallo Mitarbeiter
Ich wollte mit der Verwendung von JMP-Klassen in Skripten beginnen, stieß jedoch auf ein unglückliches Verhalten: Wenn Sie einer Methode Argumente geben, werden die Argumente so behandelt, als wären sie Klassenmitglieder, was Klassen fast unbrauchbar macht, da das Argument für die Methode davon abhängt, ob a Klassenmitglied verwendet diese Variable bereits. Ich habe keine Möglichkeit gefunden, das Senden einer globalen oder hier: Variablen an die Methode zu erzwingen. Ich glaube, es ist ein Fehler. Der folgende Code gibt dieses Verhalten wieder:
define class ("aClass",
varA = .;
aMethod=method({someVar},
varA = someVar;
show(someVar);
)
);
obj=new object(aClass());
varB=3;
obj:aMethod(varB);
varA=4;
obj:aMethod(varA);
obj:aMethod(::varA);
Da varA sowohl eine globale Variable als auch eine Metod-Variable ist, erhält "aMethod" oben nur 3 und nicht 4 im Argument. Das Verhalten wird also durch die Interaktion zwischen internen Klassenmitgliedsnamen und globalen Variablennamen beeinflusst.
Mit freundlichen Grüßen,
Thomas
SkriptingBetreff: JMP-Klassenmethoden behandeln Argumente als KlassenmitgliederIch stimme zu, es sieht aus wie ein Fehler. @EvanMcCorkle @audrey_shull
Eine Problemumgehung besteht darin, den Mitgliedsvariablennamen m_ voranzustellen. Ich habe dieses Präfix oder eine Variation lange Zeit verwendet, um jedem, der den Code liest, zu helfen, zu verstehen, wann er eine Mitgliedsvariable betrachtet.
Betreff: JMP-Klassenmethoden behandeln Argumente als KlassenmitgliederUnd ein paar Beiträge mit Klassen:
Verwendung der Klasse definieren
Funktionale Programmierung mit JSL-Objekten