El compilador de Java parece tener soporte para expresiones let
en com.sun.tools.javac.tree.*
(busque LetExpr
).¿Propósito de "let expression" (LetExpr) en el compilador de Java?
Un comentario en JCTree siquiera menciona alguna sintaxis
(let int x = 3; in x+2)
que por supuesto no es aceptada por la gramática de la lengua y la rechazó en una fase anterior del compilador.
Me pregunto sobre el origen de esta construcción, que nunca he visto antes.
¿Se usa internamente por javac
o es sintetizado por otras herramientas? ¿Es acaso solo un artefacto de los primeros días de Java a partir de una característica del lenguaje que nunca vio la luz?
¿Hay algo útil que se pueda hacer hoy?
En general, ¿por qué existe?
Esa página no dice que * existe * para el autoenlace, solo que * se usa * en el autoboxing. Como la página trata sobre un error en el autoboxing, no sobre let-expressions, no es sorprendente que el autoboxing sea el único uso para let-expressions que menciona. (No digo que estés equivocado, realmente no lo sé), pero creo que sería útil agregar una fuente más relevante/convincente/explícita, si conoces una). – ruakh
¿Qué significa ' int foo_helper = foo.intValue() en foo_helper ++; '¿incluso significa? – ArtB
@ArtB Es similar a la sintaxis ml. deje var = value en expression. Por lo tanto, en la expresión the, todas las instancias de var evalúan el valor. – Matthew