Pasar funciones de un espacio de nombres para funcionar en diferentes espacios de nombresTodos,
Tengo una secuencia de comandos que tiene varios espacios de nombres: por simplicidad, llamémoslos Espacio de nombres A y Espacio de nombres B.
Cuando llamo a una función del espacio de nombres B y requiero
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);
);Para usar una función del espacio de nombres A, ¿cómo se puede lograr esto? Entonces, en el ejemplo anterior, si quisiera pasar IsLeapYear a MyFun para su uso en su evaluación, ¿cómo puedo hacer eso?
Re: Pasar funciones de un espacio de nombres para funcionar en diferentes espacios de nombres @txnelson ,
No me di cuenta hasta que vi tu comentario de que, dado que el espacio de nombres ya se había incluido en el script, podría llamar a la función de la forma en que lo haría si los espacios de nombres estuvieran definidos en el mismo script.
Re: Pasar funciones de un espacio de nombres para funcionar en diferentes espacios de nombresLo siento, pero no entiendo el problema. De dónde proviene el código fuente no afecta a los espacios de nombres. ¿Puede proporcionar una muestra de cómo se ven los archivos incluidos?
Re: Pasar funciones de un espacio de nombres para funcionar en diferentes espacios de nombres @txnelson ,
Probablemente debería haber explicado esto un poco mejor en la pregunta.
Include(FilePathToNamespaceA);
Include(FilePathToNamespaceB);
Si mi secuencia de comandos tiene este aspecto, donde se incluyen espacios de nombres, ahora ¿cómo llamo a IsLeapYear que pertenece al espacio de nombres A en una función del espacio de nombres B?
Re: Pasar funciones de un espacio de nombres para funcionar en diferentes espacios de nombresNo estoy exactamente seguro de a qué se dirige, pero ¿este script hace lo que quiere?
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))