我想做的伪代码是:
function<bool(int)> getFunc(type) // get a function depending on what type is passed
问题是返回的函数必须声明为静态的吗?结果,我无法访问对象属性。所以我需要将它们传递给函数?因此,要返回的原始函数可能如下所示:
bool func1(int)
bool func2(int)
现在需要注入它需要运行的其他对象/参数...
bool func1(int, Class1)
bool func2(int, Class2)
那么如何定义返回类型getFunc
呢?或者也许有更好的方法?
更新
在上面,func*
函数实际上是:has*()
. 例如。
hasStmtsUsing(variable)
hasVariablesUsed(stmt)
为了确定条件是否为真,它使用一个对象,例如。uses
. 然后还有其他类似的has*()
功能hasStmtsModifying(variable)
,例如使用 object modifies
。uses
andmodifies
是不同类型的对象,本来就是对象成员,所以不需要传入。现在既然是函数static
,就需要传入。
在写这篇文章时,我在想我需要的是某种依赖注入器?也许我传入DI
并调用DI.getX()
函数?