आप एक चर को परिभाषित कर रहे हैं, यह घोषणा/इस प्रकार एक चर को परिभाषित करने के पूरी तरह से वैध प्रतीत होता है :जावा में, {ए, बी, सी, ...} सरणी शॉर्टेंड अनुचित क्यों है, और क्यों?</p> <pre><code>double[][] output = {{0,0},{1,0}}; </code></pre> <p>लेकिन आप एक मूल्य के लिए लौट रहे हैं तो ऐसा निम्नलिखित लिखने के लिए अवैध प्रतीत होता है:
public double[] foo(){
return {0,1,2}
}
मैंने सोचा होगा कि आंतरिक रूप से, ये दोनों एक ही कार्रवाई कर रहे होंगे। ग्रहण, कम से कम, असहमत। क्या किसी को पता है कि अंतर क्या है, और यह कहां देखा जा सकता है, या पूर्व उदाहरण को स्वीकार करने और उत्तरार्द्ध को अस्वीकार करने के लिए फायदेमंद क्यों होगा?
संपादित करें: ठीक है, तो जब आप प्रारंभ कर रहे हैं तो यह उचित है, लेकिन मुझे कोई अस्पष्टता दिखाई नहीं दे रही है ... क्या JVM वेरिएबल के नाम से चर के प्रकार की व्याख्या नहीं कर सकता (फिर से परिभाषित करने के मामले में पहले से ही प्रारंभिक चर) या लौटने पर (जहां JVM फ़ंक्शन के रिटर्न प्रकार को देख सकता है)? प्रारंभिकरण को एक नियम का एक विशेष मामला क्या बनाता है जो अंतर्निहित प्रकार को प्रतिबंधित करेगा? सामान्य नियम को स्पष्ट प्रकार की आवश्यकता होती है?
"यह घोषणा के दौरान ही स्वीकार्य है।" क्यूं कर? रिटर्न स्टेटमेंट के दौरान क्यों नहीं? –
@ जोहानपी क्योंकि भाषा इसे अनुमति नहीं देती है। जहां तक मुझे पता है, इसके खिलाफ कोई अच्छा मामला नहीं है (मुझे लगता है कि निर्माण सुनिश्चित करने के लिए संकलक को थोड़ा और प्रकार का अनुमान लगाना पड़ सकता है)। – Jeffrey