将一个命名空间的函数传递给不同命名空间中的函数所有,
我有一个具有多个命名空间的脚本 - 为简单起见,我们称之为命名空间A和命名空间B.
当我从命名空间B调用一个函数时,我需要
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);
);它使用命名空间A中的函数 - 如何实现?因此,在上面的例子中,如果我想将IsLeapYear传递给MyFun用于评估 - 我该怎么做?
Re:将一个命名空间的函数传递给不同命名空间中的函数 @txnelson ,
我没有意识到,直到我看到你的评论,因为命名空间已经包含在脚本中,如果在同一个脚本中定义了命名空间,我可以按照我的方式调用该函数。
Re:将一个命名空间的函数传递给不同命名空间中的函数对不起,我不明白这个问题。 源代码来自哪里不会影响名称空间。 你能提供一下包含文件的样本吗?
Re:将一个命名空间的函数传递给不同命名空间中的函数 @txnelson ,
我应该在这个问题上解释得更好。
Include(FilePathToNamespaceA);
Include(FilePathToNamespaceB);
如果我的脚本看起来像这样包含名称空间,那么现在如何在命名空间B的函数中调用属于命名空间A的IsLeapYear?
Re:将一个命名空间的函数传递给不同命名空间中的函数我不确定你要追求的是什么,但这个脚本是否正在做你想要的?
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))