Mettre à jour un tableau associatif qui est une variable globale de classeBonjour,
J'ai une variable de classe qui est un tableau associatif
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)))
);
);
);
);mais lorsque j'appelle cette classe pour mettre à jour le tableau associatif, le tableau est toujours vide. Des pensées?
Il convient également de noter que j'ai testé cette syntaxe externe à la classe pour mettre à jour un tableau associatif et qu'elle a agi comme prévu.
Automatisation et scriptsles fenêtresRe : Mettre à jour un tableau associatif qui est une variable globale de classeJe pense que vous voudrez peut-être ajouter une méthode d'initialisation
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);
ce n'est pas nécessaire et je ne suis pas sûr qu'il doive même être utilisé (mais il est utilisé ici https://www.jmp.com/support/help/en/18.0/#page/jmp/advanced-classes. shtml#ww761769 )
Re : Mettre à jour un tableau associatif qui est une variable globale de classeBonjour,
donc, j'ai une méthode init. Je n'ai pas mis tout le flux de travail de la classe par paresse. Je ne pensais pas qu'il était nécessaire de résoudre le problème.
Re : Mettre à jour un tableau associatif qui est une variable globale de classeMais, instancier la variable avec this:array semble avoir fonctionné.
Pourquoi cela fait-il une différence ?
Re : Mettre à jour un tableau associatif qui est une variable globale de classeComment utiliser Define Class pourrait donner quelques explications