我尝试在 DLang(函数指针)中使用函数指针,但它无法编译。网上所有关于制作函数指针的代码对我来说都不起作用。这是我的代码:
tqvar function(tqlist)[string] procs;
procs["divide"] = ÷/// cannot implicitly convert expression (&this.divide) of type tqvar delegate(tqlist args) to tqvar function(tqlist) (QScript)
tqvar divide(tqlist args){
tqvar result;
result.ii = true;
result.d = args.read(0).d/args.read(1).d;
return result;
};
我在 ubuntu 上使用 dmd2。
最佳答案
divide
显然是一个委托(delegate),而不是一个函数。您可以使用委托(delegate)列表(只需将 function
替换为 delegate
),或者确保您的函数不是委托(delegate)。
对于后者:看起来divide是一个类方法,而不是一个普通函数。要么使其静态
,要么将其移至类主体之外。
关于pointers - D2 : Function Pointers won't compile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36260538/