我听说DMD 2.058中会出现匿名函数的新语法,但我找不到任何关于它的信息。什么是新语法,旧语法将被弃用?
答案 0 :(得分:14)
我相信它就像C#'s。
以下是等效的:
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
虽然我不确定新语法是否也支持显式返回类型。
答案 1 :(得分:8)
目前没有删除当前的lambda功能。只是为那些想要它的人引入了一种新的,更简洁的语法。作为Merhdad says,它本质上是C#的语法,但我不知道它是否100%相同。
所以不要做像
这样的事情auto found = find!((a){return func(a) == value;})(range);
你做的事情
auto found = find!(a => func(a) == value)(range);