9
我聽說在DMD 2.058中會有一個匿名函數的新語法,但是我找不到任何關於它的信息。什麼是新的語法,舊的語法將被棄用?什麼是新的lambda語法?
我聽說在DMD 2.058中會有一個匿名函數的新語法,但是我找不到任何關於它的信息。什麼是新的語法,舊的語法將被棄用?什麼是新的lambda語法?
我相信這就像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
,雖然我不知道明確的返回類型是否也支持新的語法。
沒有當前的lambda功能被刪除。這只是爲了那些想要它的人而引入了一種新的,更加細緻的語法。作爲Merhdad says,它本質上是C#的語法,儘管我不知道它是否100%相同。的
因此,而不是做一些像
auto found = find!((a){return func(a) == value;})(range);
你這樣做
auto found = find!(a => func(a) == value)(range);
似乎有點傻問,但我以爲'(x)=> {返回X;}'形式也支持?也就是說,使用帶花括號分隔的語句塊的操作符是否有效? – CodexArcanum 2012-01-18 15:52:44
@CodexArcanum:不確定。 – Mehrdad 2012-01-18 16:14:56