我听说DMD 2.058将会有一种新的匿名函数语法,但是我找不到任何相关信息。请问这种新的语法是什么,旧的语法是否会被弃用?
我认为它跟C#很像。
以下是等价的:
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
虽然我不确定新语法是否也支持显式返回类型。
当前的lambda功能不会被删除,只是为那些需要的人引入了一种新的、更简洁的语法。正如Merhdad所说,它基本上是C#的语法,但我不知道它是否完全相同。
因此,不再像这样做:
auto found = find!((a){return func(a) == value;})(range);
您可以这样操作
auto found = find!(a => func(a) == value)(range);
(x) => {return x;}
这种形式也被支持了?也就是说,使用带有花括号分隔的语句块的运算符是有效的? - CodexArcanum