Passer des fonctions d'un espace de noms à fonctionner dans différents espaces de nomsTout,
J'ai un script qui a plusieurs espaces de noms - pour simplifier, appelons-les Namespace A et Namespace B.
Quand j'appelle une fonction de l'espace de noms B et que j'ai besoin
Test1 = Namespace("A");
Test1:IsLeapYear = function({Input_Year},{Default Local},
If(Is String(Input_Year),
Input_Year = Num(Input_Year);
);
If( (Mod(Input_Year,400) == 0 | (Mod(Input_Year,4) == 0 & Mod(Input_Year,100)!= 0)),
return(1);
,
return(0);
);
);
Test2 = Namespace("B");
Test2:MyFun = function({dt_In,TableVarName,Value},{Default Local},
dt_In << New Table Variable(TableVarName,Value);
);utiliser une fonction de Namespace A - comment cela peut-il être réalisé? Ainsi, dans l'exemple ci-dessus, si je voulais transmettre IsLeapYear à MyFun pour l'utiliser dans son évaluation, comment puis-je le faire?
Re: Passer des fonctions d'un espace de noms à fonctionner dans différents espaces de noms @txnelson ,
Je n’avais pas compris jusqu’à ce que j’aie vu votre commentaire, puisque l’espace de nommage ayant déjà été inclus dans le script, je pourrais appeler la fonction de la même façon si les espaces de nom étaient définis dans le même script.
Re: Passer des fonctions d'un espace de noms à fonctionner dans différents espaces de nomsJe suis désolé, mais je ne comprends pas le problème. L'origine du code source n'a pas d'incidence sur les espaces de noms. Pouvez-vous fournir un échantillon de ce à quoi ressemblent les fichiers d'inclusion?
Re: Passer des fonctions d'un espace de noms à fonctionner dans différents espaces de noms @txnelson ,
J'aurais probablement dû l'expliquer un peu mieux dans la question.
Include(FilePathToNamespaceA);
Include(FilePathToNamespaceB);
Si mon script ressemble à ceci dans lequel les espaces de noms sont en cours d'inclusion, comment appeler IsLeapYear qui appartient à l'espace de noms A dans une fonction de l'espace de noms B?
Re: Passer des fonctions d'un espace de noms à fonctionner dans différents espaces de nomsJe ne sais pas exactement ce que vous cherchez, mais ce script fait-il ce que vous voulez?
names default to here(1);
Test1=New Namespace("A");
Test2=New Namespace("B");
Test1:IsLeapYear = Function( {Input_Year},
{Default Local},
If( Is String( Input_Year ),
Input_Year = Num( Input_Year )
);
If(
(Mod( Input_Year, 400 ) == 0 | (Mod( Input_Year, 4 ) == 0 & Mod( Input_Year, 100 ) != 0)
),
Return( 1 ),
Return( 0 )
);
);
Test2:MyFun = Function( {date},
{Default Local},
Return=Test1:IsLeapYear(date)
);
show(Test2:MyFun(1960))