JLS :
L' operatore con precedenza più bassa è la freccia di un'espressione lambda (->) , seguita dagli operatori di assegnazione.
Seguito in quale direzione (priorità crescente, priorità decrescente)? - "seguito" significa che l'assegnazione ha priorità o priorità inferiore (rispetto all'operatore freccia)? Immagino, in aumento, perché "più basso" (per freccia) significa assolutamente più basso.
A quanto ho capito, la freccia (->) dovrebbe trovarsi in fondo a questa tabella di precedenza degli operatori di Princeton (che è al di sotto di tutti gli operatori di assegnazione), quindi la freccia (->) con livello di priorità 0 (zero) (come da quella tabella).
Sono corretto nella mia comprensione?
ExamTray sembra dire che la priorità della freccia è almeno uguale all'assegnazione ... Inoltre ha chiarito che l'associatività della freccia è Sinistra-> A-> Destra (diversamente dall'assegnazione). Non ho trovato alcuna citazione JLS per l'associatività delle frecce.
Ho sempre pensato che la priorità di assegnazione fosse principalmente più bassa per un motivo.
->
è la bassa est , operatori di assegnazione non possono avere bassa er la precedenza.
IntFunction fo = a->b->a-b; // in test
Implica priorità / associatività di -> in generale. Così ho deciso di chiarire -> il posto di precedenza / associatività nell'intera tabella di precedenza / associatività perché non ne ero sicuro.
IntUnaryOperator op; op = x -> x;
è interessante. Forse (op = x) -> x
non è considerato perché op = x
non è un'istanza valida della LambdaParameters
produzione?
The lowest precedence operator is the arrow of a lambda expression.