2011-02-09 15 views
15

यह एक सामान्य मामला है कि लोगों को विधि कॉल पर ब्रैकेट का उपयोग करना चाहिए या नहीं, जो पैरामीटर लेते हैं या नहीं। अर्थातgroovy: विधि कॉल पर ब्रैकेट का उपयोग करें या नहीं?

def someFunc(def p) { 
... 
} 
तो

बुला:

someFunc "abc" 

बनाम ...

someFunc("abc") 

यह सिर्फ स्थिरता का सवाल है, या वहाँ से प्रत्येक के लिए विशिष्ट उपयोग मामलों है?

उत्तर

18

यह मुख्य रूप से स्थिरता और पठनीयता का सवाल है, लेकिन ध्यान दें कि ग्रोवी हमेशा आपको कोष्ठक को छोड़ने से दूर नहीं जाने देगा। एक के लिए, आप नेस्टेड विधि कॉल में कोष्ठकों को छोड़ नहीं सकते हैं:

def foo(n) { n } 
println foo 1 // won't work 

अनुभाग "Omitting parentheses" Style guide में हकदार देखें।

3

कोई विशिष्ट मामला नहीं है जहां आपको उन्हें हटाना होगा, आप हमेशा उनका उपयोग कर सकते हैं। उन्हें बाहर छोड़ना सिर्फ सुंदर है।
ऐसे मामले हैं जहां आप ऐसा नहीं कर सकते (जहां आप एक सबस्क्रिप्ट ऑपरेटर के साथ सूची/मानचित्र पैरामीटर को भ्रमित कर सकते हैं उदाहरण के लिए, नेस्टेड कॉल, या जब कथन एक असाइनमेंट होता है), लेकिन सामान्य नियम यह है कि सबसे ज्यादा कॉल यदि कोई अस्पष्टता नहीं है तो कोई संश्लेषण नहीं हो सकता है।
(नष्ट कई लाइनों, के रूप में मैं सिर्फ अधिसूचना एक पोस्ट है कि जानकारी के साथ पहले से ही है कि वहाँ प्राप्त हो गया है) ग्रूवी 1.8 आप
http://groovyconsole.appspot.com/script/355001

+0

ठीक है, तो यह एक extendability बिंदु तो हो सकता है? लोगों के साथ पुरानी समस्या की तरह, अगर ifs और loops पर घुमावदार ब्रेसिज़ खोलने और बंद करने का उपयोग नहीं कर रहे हैं? यानी लोगों को हमेशा उस मामले में ब्रैकेट का उपयोग करना चाहिए जहां किसी को बाद में उन्हें जोड़ना पड़ सकता है ...? – Steven

+0

यह सुनिश्चित नहीं है कि मुझे आपकी बात मिलती है, अगर आपका मतलब है कि किसी कथन में ब्रांड्स का उपयोग करना बेहतर होगा, तो 'foo' x'' के बजाय 'foo (' x ') 'क्योंकि आप बाद में' println foo ('x') 'मैं कहूंगा कि उन्हें छोड़ दें,' foo 'x'' का उपयोग करें और आवश्यकता होने पर केवल कोष्ठक जोड़ें। – jpertino

1

"an empty pair of parentheses is just useless syntactical noise!" पर उन्हें बाहर की जाँच कर सकते हैं, और भी अधिक मामलों कोष्ठक छोड़ करने की अनुमति देगा

यह है कि वे आप कोष्ठकों का प्रयोग करने, जब वे एक उद्देश्य पूरा प्रोत्साहित कर रहे हैं मुझे लगता है, लेकिन उन्हें छोड़ देते हैं, जब वे बस 'शोर' हैं

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