Passare le funzioni di uno spazio dei nomi per funzionare in diversi spazi dei nomiTutti,
Ho uno script che ha più spazi dei nomi - per semplicità, chiamiamoli Namespace A e Namespace B.
Quando chiamo una funzione dal Namespace B e richiedo
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);
);per usare una funzione da Namespace A - come può essere raggiunto? Quindi, nell'esempio sopra, se volessi passare IsLeapYear a MyFun per l'uso nella sua valutazione, come posso farlo?
Ri: passare le funzioni di uno spazio dei nomi per funzionare in diversi namespace @txnelson ,
Non sono riuscito a rendermi conto fino a quando ho visto il tuo commento che dal momento che lo spazio dei nomi è già stato incluso nella sceneggiatura, potrei chiamare la funzione nel modo in cui lo farei se gli spazi dei nomi fossero definiti nello stesso script.
Ri: passare le funzioni di uno spazio dei nomi per funzionare in diversi namespaceMi dispiace, ma non capisco il problema. Da dove proviene il codice sorgente non ha impatto sugli spazi dei nomi. Puoi fornire un esempio di come sono i file di inclusione?
Ri: passare le funzioni di uno spazio dei nomi per funzionare in diversi namespace @txnelson ,
Probabilmente avrei dovuto spiegarlo un po 'meglio nella domanda.
Include(FilePathToNamespaceA);
Include(FilePathToNamespaceB);
Se il mio script ha un aspetto simile a questo in cui vengono inclusi gli spazi dei nomi, ora come faccio a chiamare IsLeapYear che appartiene al Namespace A in una funzione di Namespace B?
Ri: passare le funzioni di uno spazio dei nomi per funzionare in diversi namespaceNon sono esattamente sicuro di cosa stai cercando, ma questo script fa ciò che vuoi?
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))