什么';新的lambda语法是什么?

什么';新的lambda语法是什么?,lambda,d,Lambda,D,我听说DMD2.058中会有一种新的匿名函数语法,但我找不到任何相关信息。新的语法是什么,旧的语法会被弃用吗?我相信是这样的 以下是等效的: delegate(i, j) { return i + j; } (i, j) => i + j 它们是: delegate(i) { return i; } (i) => i i => i // Can leave off parentheses delegate(int i) { return i; } (int i) =&g

我听说DMD2.058中会有一种新的匿名函数语法,但我找不到任何相关信息。新的语法是什么,旧的语法会被弃用吗?

我相信是这样的

以下是等效的:

delegate(i, j) { return i + j; }
(i, j) => i + j
它们是:

delegate(i) { return i; }
(i) => i
i => i   // Can leave off parentheses
delegate(int i) { return i; }
(int i) => i
它们是:

delegate(i) { return i; }
(i) => i
i => i   // Can leave off parentheses
delegate(int i) { return i; }
(int i) => i

尽管我不确定在新语法中是否也支持显式返回类型。

没有删除当前的lambda功能。只是一种新的、更简洁的语法正在被引入,以满足那些需要它的人。实际上,这是C#的语法,尽管我不知道它是否100%相同

因此,与其做类似的事情

auto found = find!((a){return func(a) == value;})(range);
auto found = find!(a => func(a) == value)(range);
你做的事情

auto found = find!((a){return func(a) == value;})(range);
auto found = find!(a => func(a) == value)(range);

问起来似乎有点傻,但我假设
(x)=>{return x;}
表单也受支持?也就是说,将运算符与由大括号分隔的语句块一起使用是否有效?