operator precedence - In Java, why does an assignment in parentheses not occur before the rest of the expression is evaluated? -


विचार करें

  int a = 20; A = a + (a = 5); // a == 25, क्यों नहीं 10?  

सभी पूर्ववर्ती नियमों को तुच्छ नहीं करें? क्या कुछ अभिव्यक्तियों के मूल्यांकन से पहले आरएचएस पर कुछ चर? > आपके उदाहरण में पहले लोड किया गया है, और फिर कोष्ठक में बिट का मूल्यांकन किया जाता है। यदि आपने आदेश को उलट दिया है:

  int a = 20; ए = (ए = 5) + ए; Println (एक);  
 10 

... आप वाकई 10 प्राप्त करते हैं। अभिव्यक्ति का मूल्यांकन बाएं से दाएं।

इस पर विचार करें:

  f () + g ()  

f को g से पहले बुलाया जाएगा। कल्पना कीजिए कि यह कैसे अनइंड्यूयूट होगा,

  f () + (g ())  

के पास g होना चाहिए f से पहले।

यह सब (इन टिप्पणियों में अपील करने के लिए @पीआईएसएन्को के लिए धन्यवाद) में विस्तृत है।


Comments

Popular posts from this blog

java - org.apache.http.ProtocolException: Target host is not specified -

java - Gradle dependencies: compile project by relative path -

ruby on rails - Object doesn't support #inspect when used with .include -