익명 함수와 함수에 대한 참조로 정의 된 람다를 보았습니다. Javascript는 다음을 모두 지원합니다.
setTimeout(function(){ }, 100)
var f = function(){ }
이것은 JS가 많은 힘과 유연성을 얻는 곳입니다. Java는 첫 번째 (익명 인터페이스 구현)를 어느 정도 지원 하지만 후자는 지원하지 않습니다 . Java 8에 대한 업데이트는 아래를 참조하십시오.
이것들 중 어느 (또는 둘 다)이 람다의 적절한 정의인지 나에게 명확하지 않습니다.
JS는 이러한 기능을 지원하는 첫 번째 언어가 아닙니다. 기억에서, 나는 언어 애호가들이 항상 람다를 지원하는 것에 대해 열광하는 소문이라고 생각합니다.
BTW : Java에서 익명 클래스는 일반적으로 인수에 대한 클래스 정의를 즉시 전달하는 데 사용됩니다 (스윙에서 많이 사용됨). 다음과 같은 것 (컴파일되지 않은 메모리에서) :
someGuiContainer(new WidgetInterface()
{
public void importantMethodToDefine(){
}
}
)
최신 정보
8부터 Java는 이제 공식적으로 Lambda 언어입니다.
이제 다음 구문을 사용할 수 있습니다.
MathOperation addition = (int a, int b) -> a + b;
System.out.println("10 + 5 = " + tester.operate(10, 5, addition));
코드 소스