Java 컴파일러는 표현을 com.sun.tools.javac.tree.*
(LetExpr
을 찾습니다)에 대한 지원을 갖고있는 것으로 보입니다. JCTree에서"let let"(LetExpr)을 Java 컴파일러에서 사용 하시겠습니까?
한 의견도 물론 언어의 문법에 의해 허용되지 않고 이전 컴파일러 단계에서 거부 일부 구문
(let int x = 3; in x+2)
을 언급하고있다.
이전에 본 적이없는이 구조의 근원에 대해 궁금합니다.
내부적으로 javac
으로 사용 되었습니까? 아니면 다른 도구로 합성 되었습니까? 빛을 보지 못했던 언어 기능으로 Java의 아주 초기의 유물일까요?
오늘 할 수있는 유용한 것이 있습니까?
일반적으로 말하는 이유는 무엇입니까?
그 페이지는 autoboxing을 위해서 * 존재한다고 말하지 않으며, 단지 autoboxing에서 * used * 라고만 말합니다. 이 페이지는 let-expressions에 관한 것이 아니라 autoboxing에 관한 버그이기 때문에 autoboxing이 let-expressions의 유일한 용도라고 언급 한 것은 놀라운 일이 아닙니다. (나는 당신이 틀렸다는 것을 말하지 않고있다. 나는 정말로 모른다. 그러나 당신이 알고 있다면 더 관련성이있는/확실한/명백한 소스를 추가하는 것이 도움이 될 것이라고 생각한다.) – ruakh
'let int foo_helper = foo.intValue() in foo_helper ++;'심지어 의미합니까? – ArtB
@ArtB ml 구문과 비슷합니다. expression에 var = value를 지정합니다. 따라서 표현식에서 var의 모든 인스턴스는 값으로 평가됩니다. – Matthew