2012-01-13 3 views
9

DMD 2.058에 익명 기능을위한 새로운 구문이있을 것이라고 들었지만 이에 대한 정보를 찾을 수 없습니다. 새로운 구문은 무엇이며, 이전 구문은 더 이상 사용되지 않을 것입니까?새로운 람다 구문은 무엇입니까?

답변

13

가 나는 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 

내가 명시 적 반환 형식도 지원 여부를 확실하지 않다하지만 새로운 구문.

+0

같은 것을 물어 조금 바보 같아,하지만 나는'(X) => {반환 X;} 가정 '양식을 또한 지원됩니까? 즉, 중괄호로 구분 된 명령문 블록이있는 연산자를 사용하는 것이 유효합니까? – CodexArcanum

+0

@CodexArcanum : 확실하지 않습니다. – Mehrdad

7

현재 람다 기능이 제거되지 않습니다. 단지 새롭고 간결한 구문이 사람들을 위해 도입되고 있다는 것입니다. Merhdad says으로, 그것은 본질적으로 C#의 구문입니다. 비록 그것이 100 % 일치하는지 모르겠습니다.

그래서 그 대신

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

같은 일을 당신은

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