
सिंगल स्टेटमेंट्स के आसपास एक गर्म बहस है कि उनमें कर्ली ब्रेसेस होने चाहिए या नहीं।
C++, C#, Java, और Javascript में कर्ली ब्रेसेस के बिना एक सिंगल लाइन स्टेटमेंट वैध है, कुछ इस फीचर का फायदा उठाते हैं, जबकि अन्य नहीं।
उदाहरण के लिए
if(ifTrue)
MowTheLawn();
for(var index; index > 10; index++)
ChopWood();
foreach(var dollar in money)
BuyLollipop();
while(untilTheEnd)
Read();
सिंगल लाइन कर्ली-ब्रेसेस के विरुद्ध तर्क
कर्ली-ब्रेसेस के विरुद्ध तर्क यह है कि यह संक्षिप्त सिंटैक्स है, टाइप करने के लिए कम कैरेक्टर हैं, और यह वैध सिंटैक्स है। इसका फायदा क्यों न उठाया जाए?
सिंगल लाइन कर्ली-ब्रेसेस के पक्ष में तर्क
कर्ली-ब्रेसेस के पक्ष में तर्क है स्थिरता, कम बग्स और मानसिक रूप से पार्स करना अधिक प्राकृतिक।
Jon Abrams द्वारा लिखे गए एक लेख में जिसका शीर्षक Single-line ‘if’ statements है, Jon बताते हैं कि कैसे Apple के TLS implementation में एक दोष कर्ली-ब्रेसेस के बिना एक सिंगल लाइन if स्टेटमेंट के परिणामस्वरूप आया था। Jon आगे कहते हैं कि जबकि सिंगल-लाइन स्टेटमेंट्स में कर्ली ब्रेसेस को छोड़ना संक्षिप्त है, दोषों को रोकना संक्षिप्तता से अधिक महत्वपूर्ण है।
Jon एक समझौता प्रस्तावित करते हैं, सिंगल-लाइन स्टेटमेंट्स की अनुमति देना यदि वे वास्तव में एक सिंगल लाइन पर हैं:
if(ifTrue) MowTheLawn();
मैं Jon के विचारों से सहमत हूं, सिंगल लाइन्स में कर्ली-ब्रेसेस को छोड़ना उसके द्वारा प्रदान किए जाने वाले लाभ के लायक नहीं है। यह सॉफ्टवेयर इंजीनियर को वैध सिंटैक्स की दो विविधताओं पर विचार करने के लिए मजबूर करता है। यह इतना बुरा नहीं लग सकता, लेकिन हर बार जब आप एक if स्टेटमेंट पर आते हैं तो यह निर्धारण करना कष्टकारी है। अगला प्रभाव यह है कि इंजीनियर कुछ कीस्ट्रोक्स बचाता है और भविष्य के पाठकों पर अपने कोड को पार्स करने का बोझ डालता है।
C# सॉफ्टवेयर इंजीनियरों के लिए, Microsoft ने अपने coding conventions में एक पक्ष लिया है, जो कर्ली ब्रेसेस की मांग करते हैं।
जब हम लाइनों की संख्या की परवाह किए बिना सभी मामलों में कर्ली-ब्रेसेस का उपयोग करते हैं, तो क्या स्कोप में है और क्या स्कोप से बाहर है यह बहुत स्पष्ट होता है। यह कोड को कम त्रुटि-प्रवण और अधिक स्थिर बनाता है, हालांकि कुछ इस बिंदु पर बहस कर सकते हैं, मुझे लगता है कि इसे पढ़ना आसान है।
लेखक: चक कॉनवे सॉफ्टवेयर इंजीनियरिंग और जेनेरेटिव AI में विशेषज्ञता रखते हैं। उनसे सोशल मीडिया पर जुड़ें: X (@chuckconway) या उन्हें YouTube पर देखें।