我想做这样的事情:
void function() test = void function() { ... };
这可能吗?我也可以像这样制作函数数组:
void function()[] test = [
void function() { ... },
void function() { ... }
];
我知道我可以只使用函数指针,但是出于我的目的,这些函数实际上并不需要一个名称,并且只能从数组中访问,因此为每个函数提供一个声明似乎是多余的。
答案 0 :(得分:2)
void function() test = function void () {...};
其中大部分是可选的。这样做(只要编译器可以推断所有内容):
auto test = {...};
进一步阅读:http://dlang.org/expression.html#FunctionLiteral,http://dlang.org/function.html#closures
此外,您可以在D:
中嵌套函数void main()
{
void test() {...}
test();
}