Aktualisieren eines assoziativen Arrays, das eine globale Klassenvariable istHallo,
Ich habe eine Klassenvariable, die ein assoziatives Array ist
define class (
"class name",
ass_array = associative array ();
meth1 = method({x,y},
for(i = 1, n <= n items(x),i++
xi = x[i];
yi = y[i];
try(
ass_array << insert(xi, Insert(eval list(ass_array[eval(xi)]), eval(yi))),
ass_array << insert(xi, List(eval(yi)))
);
);
);
);aber wenn ich diese Klasse aufrufe, um das assoziative Array zu aktualisieren, ist das Array immer noch leer. Irgendwelche Ideen?
Es ist auch erwähnenswert, dass ich diese Syntax außerhalb der Klasse getestet habe, um ein assoziatives Array zu aktualisieren, und sie hat wie erwartet funktioniert.
Automatisierung und SkriptingWindowsBetreff: Aktualisieren eines assoziativen Arrays, das eine globale Klassenvariable istIch denke, Sie möchten möglicherweise eine Initialisierungsmethode hinzufügen
Names Default To Here(1);
Define Class("class name",
ass_array = Associative Array();
_init_ = Method({},
this:ass_array = ass_array;
);
meth1 = Method({x, y},
ass_array = Associative Array();
For(i = 1, i <= N Items(x), i++,
xi = x[i];
yi = y[i];
Try(
ass_array << Insert(xi, Insert(Eval List(ass_array[Eval(xi)]), Eval(yi))),
ass_array << Insert(xi, List(Eval(yi)))
);
);
);
);
cn = New Object("class name");
show(cn:ass_array);
cn:meth1({"a", "b"}, {"c", "d"});
show(cn:ass_array);
das ist nicht notwendig und ich bin nicht sicher, ob es überhaupt verwendet werden sollte (aber es wird hier verwendet https://www.jmp.com/support/help/en/18.0/#page/jmp/advanced-classes.shtml#ww761769 )
Betreff: Aktualisieren eines assoziativen Arrays, das eine globale Klassenvariable istHallo,
also, ich habe eine Init-Methode. Aus Faulheit habe ich nicht den gesamten Workflow der Klasse ausgeführt. Ich hielt es nicht für notwendig, das Problem zu beheben.
Betreff: Aktualisieren eines assoziativen Arrays, das eine globale Klassenvariable istAber das Instanziieren der Variable mit this:array schien funktioniert zu haben.
Warum macht das einen Unterschied?
Betreff: Aktualisieren eines assoziativen Arrays, das eine globale Klassenvariable istDie Verwendung von „Define Class“ könnte einige Erklärungen liefern.