JLS :
Các nhà khai thác ưu tiên thấp nhất là mũi tên của một biểu thức lambda (->) , sau đó bởi các nhà khai thác chuyển nhượng.
Theo hướng nào (tăng ưu tiên, giảm ưu tiên)? - "theo sau" có nghĩa là gán có mức ưu tiên cao hơn hoặc mức ưu tiên thấp hơn (đối với toán tử mũi tên)? Tôi đoán, khi tăng, bởi vì "thấp nhất" (đối với mũi tên) có nghĩa là hoàn toàn thấp nhất.
Theo tôi hiểu, mũi tên (->) phải ở dưới cùng của bảng ưu tiên toán tử Princeton này (nằm dưới tất cả các toán tử gán), do đó mũi tên (->) có Mức ưu tiên 0 (không) (theo bảng đó).
Tôi có đúng theo cách hiểu của tôi không?
TestTray dường như nói rằng mức độ ưu tiên của mũi tên ít nhất giống với phép gán ... Thêm vào đó, làm rõ rằng tính kết hợp của mũi tên là Trái-> Tới-> Phải (không giống như gán). Tôi đã không tìm thấy bất kỳ trích dẫn JLS cho tính kết hợp mũi tên.
Tôi luôn luôn nghĩ rằng ưu tiên chuyển nhượng chủ yếu là thấp nhất vì một lý do.
->
là thấp est , toán tử gán không thể có thấp er được ưu tiên.
IntFunction fo = a->b->a-b; // in test
Ngụ ý ưu tiên / kết hợp của -> nói chung. Vì vậy, tôi quyết định làm rõ -> vị trí ưu tiên / kết hợp trong toàn bộ bảng ưu tiên / kết hợp vì cảm thấy không chắc chắn về nó.
IntUnaryOperator op; op = x -> x;
là thú vị. Có lẽ (op = x) -> x
không được xem xét bởi vì op = x
không phải là một ví dụ hợp lệ của LambdaParameters
sản xuất?
The lowest precedence operator is the arrow of a lambda expression.