2011-12-24 33 views
5

संभव डुप्लिकेट:
java - Array brackets after variable nameएक जावा कार्य करने के लिए एक सरणी पासिंग

जब एक जावा समारोह है कि एक पैरामीटर के रूप एक सरणी स्वीकार करता है लेखन, समारोह परिभाषा कोष्ठक (होना चाहिए " [] ") प्रकार या परिवर्तनीय नाम पर?

में के रूप में:

private int myFunction(int array[]) 
{ 
    //do stuff here 
} 

या ...

private int myFunction(int[] array) 
{ 
    //do stuff here 
} 

वे दोनों "काम" है, लेकिन दोनों के बीच एक तकनीकी अंतर नहीं है?

+0

आप 'निजी int myFunction (int ... array) ' –

उत्तर

15

कोई फर्क नहीं पड़ता। लेकिन int[] array को मूर्खतापूर्ण जावा माना जाता है।

तर्क यह है कि [] प्रकार (एक सरणी एक अदिश से एक अलग प्रकार का है) का हिस्सा है, और इसलिए int और [] साथ रहते हैं चाहिए। यह उदाहरण के लिए संकेत के साथ भी संगत है वापसी प्रकार:

int[] foo() { 
    ... 
    int[] x = new int[5]; 
    return x; 
} 
+0

भी कर सकते हैं उत्कृष्ट! स्पष्टीकरण के लिए धन्यवाद। – Aaron

+0

AFAIK int foo() [] {} भी मान्य है, इसलिए दोनों रिटर्न प्रकारों के अनुरूप होंगे। – josefx

+1

@josefx: यह भी सच हो सकता है। लेकिन अगर मैंने किसी को वास्तविक कोड में 'int foo() []' लिखा है, तो मुझे उन्हें स्पैंक करना होगा। –

1

दोनों के बीच कोई तकनीकी अंतर नहीं है। मैंने कभी भी एक स्टाइल गाइड नहीं देखा है जो आपके पहले उदाहरण में शैली को निर्धारित या पसंद करता है। मैंने कभी भी ओपन सोर्स जावा कोड नहीं देखा है जो आपके पहले उदाहरण में शैली का उपयोग करता है। यह हमेशाint[] array है।

2

जब एकल चर यह बहुत फर्क नहीं करता है, लेकिन जब इसके दो सरणियों परिभाषित करेगा कई चर

int[] array1, array2; 

परिभाषित करने के लिए इस्तेमाल किया।

int array1[], i; 

एक सरणी और एक चर परिभाषित करेगा।

+2

मैं तर्क दूंगा कि 'int array1 [], i;' बदसूरत है, क्योंकि यह दो अलग-अलग प्रकारों के साथ चर घोषित कर रहा है। – cHao

+0

@cHao मैं पूरी तरह से सहमत हूं –

0

int[] array मुझे और अधिक समझ में आता है क्योंकि int[] प्रकार है और array नाम है। यह अलग और मानकीकृत रखने के लिए और अधिक समझ में आता है।

संबंधित मुद्दे