JLS :
सबसे कम पूर्ववर्ती ऑपरेटर एक लैम्ब्डा अभिव्यक्ति (->) का तीर है , इसके बाद असाइनमेंट ऑपरेटर।
किस दिशा में पीछा किया गया (बढ़ती प्राथमिकता, घटती प्राथमिकता)? - "पीछा किया" का अर्थ है असाइनमेंट में उच्च प्राथमिकता या कम प्राथमिकता है (तीर ऑपरेटर के संबंध में)? मुझे लगता है, बढ़ने में, क्योंकि "सबसे कम" (तीर के लिए) का अर्थ है सबसे कम।
जैसा कि मैं समझता हूं, तीर (->) इस प्रिंसटन ऑपरेटर पूर्वता तालिका (जो सभी असाइनमेंट ऑपरेटरों से नीचे है ) के बहुत नीचे होना चाहिए , इस प्रकार तीर (->) 0 (शून्य) प्राथमिकता स्तर (उस तालिका के अनुसार) है।
क्या मैं अपनी समझ में सही हूं?
एग्जाम में लगता है कि तीर की प्राथमिकता कम से कम असाइनमेंट के समान है ... प्लस ने स्पष्ट किया कि एरो एसोसिएटिविटी लेफ्ट-> टू-> राइट (असाइनमेंट के विपरीत) है। मुझे तीर संबद्धता के लिए कोई JLS उद्धरण नहीं मिला।
मैं हमेशा यह सोचता था कि असाइनमेंट प्राथमिकता मुख्य रूप से किसी कारण से सबसे कम है।
->
निम्न स्थापन है , तो असाइनमेंट संचालकों में निम्न एर की पूर्वता नहीं हो सकती है।
IntFunction fo = a->b->a-b; // in test
सामान्य तौर पर -> की प्राथमिकताएँ / संगति। इसलिए मैंने स्पष्ट करने का निर्णय लिया -> पूर्ववर्तीता / संघातकता तालिका में पूर्ववर्तीता / सहानुभूति स्थान। क्योंकि इसके बारे में अनिश्चित महसूस किया।
IntUnaryOperator op; op = x -> x;
दिलचस्प है। शायद (op = x) -> x
इसलिए नहीं माना जाता क्योंकि उत्पादन op = x
का एक वैध उदाहरण नहीं है LambdaParameters
?
The lowest precedence operator is the arrow of a lambda expression.