你能在D中定义内联函数吗?

时间:2014-05-03 12:13:02

标签: function d definition

我想做这样的事情:

void function() test = void function() { ... };

这可能吗?我也可以像这样制作函数数组:

void function()[] test = [
    void function() { ... },
    void function() { ... }
];

我知道我可以只使用函数指针,但是出于我的目的,这些函数实际上并不需要一个名称,并且只能从数组中访问,因此为每个函数提供一个声明似乎是多余的。

1 个答案:

答案 0 :(得分:2)

是的,你几乎猜到了语法。在函数文字中,“function”在返回类型之前:

void function() test = function void () {...};

其中大部分是可选的。这样做(只要编译器可以推断所有内容):

auto test = {...};

进一步阅读:http://dlang.org/expression.html#FunctionLiteralhttp://dlang.org/function.html#closures


此外,您可以在D:

中嵌套函数
void main()
{
    void test() {...}
    test();
}