JLS :
El operador de precedencia más baja es la flecha de una expresión lambda (->) , seguida de los operadores de asignación.
¿Seguido en qué dirección (prioridad creciente, prioridad decreciente)? - "seguido" significa que la asignación tiene mayor o menor prioridad (con respecto al operador de flecha)? Supongo que, en aumento, porque "más bajo" (para flecha) significa absolutamente más bajo.
Según tengo entendido, la flecha (->) debe estar en la parte inferior de esta tabla de precedencia de operadores de Princeton (que está debajo de todos los operadores de asignación), por lo tanto, la flecha (->) tiene 0 (cero) Nivel de prioridad (según esa tabla).
¿Estoy correcto en mi entendimiento?
ExamTray parece decir que la prioridad de la flecha es al menos igual que la asignación ... Además, aclaró que la asociatividad de la flecha es Izquierda-> A-> Derecha (a diferencia de la asignación). No encontré ninguna cita de JLS para asociatividad de flecha.
Siempre solía pensar que la prioridad de asignación es principalmente más baja por una razón.
->
es el bajo est , operadores de asignación no pueden tener baja er precedencia.
IntFunction fo = a->b->a-b; // in test
Implica prioridad / asociatividad de -> en general. Así que decidí aclarar -> lugar de precedencia / asociatividad en toda la tabla de precedencia / asociatividad porque me sentí inseguro al respecto.
IntUnaryOperator op; op = x -> x;
es interesante. ¿Quizás (op = x) -> x
no se considera porque op = x
no es una instancia válida de la LambdaParameters
producción?
The lowest precedence operator is the arrow of a lambda expression.