क्या मुझे स्काला स्टेटमेंट को सीमांकित करने के लिए अर्धविराम का उपयोग करना चाहिए?


9

मैं जावा से अर्धविराम द्वारा बयानों का परिसीमन करने के लिए उपयोग किया जाता हूं, इसलिए स्वाभाविक रूप से मैं इसे स्काला कोड में भी करता हूं। मुझे यह भी लगता है कि कोड को पढ़ना आसान है, क्योंकि यह स्पष्ट है कि एक बयान कहां समाप्त होता है और दूसरा शुरू होता है। लेकिन कई बार जब मैं एसओ पर स्कैला कोड का एक टुकड़ा पोस्ट करता हूं, तो कोड को केवल अर्धविराम हटाने के लिए संपादित किया जाता है।

  1. मुझे अर्धविराम का उपयोग करना चाहिए या नहीं? क्या कोई "आधिकारिक" दिशानिर्देश या कोडिंग शैली है?
  2. क्या ऐसे मामले हैं जहां अर्धविराम की आवश्यकता होती है, अन्यथा कोड अस्पष्ट है?

5
क्या हास्केल ने आपको कुछ नहीं सिखाया है? ; अनावश्यक वाक्य रचना को हटा दें, अर्धविराम का उपयोग केवल एक ही पंक्ति में कई खंडों / कथनों को तोड़ने के लिए किया जाना चाहिए
जिमी होफा

@ जिमीहॉफ हास्केल ने मुझे सिखाया कि वाक्य रचना सुंदर और सुसंगत होनी चाहिए :)।
पेट्र पुडल्क

2
इसका पहला हिस्सा यही है कि जब भी मैं स्काला स्निपेट देखता हूं तो मुझे गुस्सा आता है ...
जिमी हॉफ

जवाबों:


9

आधिकारिक तौर पर इसे करने का कोई "सही" तरीका नहीं है, लेकिन अधिकांश चिकित्सक जहां कहीं भी अर्धविराम को छोड़ देते हैं (यही वजह है कि इतने लोग अर्धविराम को स्पष्ट रूप से हटा देते हैं)।

भाषा आपको बहुत प्रयास करती है कि आप बयानों को समाप्त करने की आवश्यकता के बारे में भूल जाएं। दुर्भाग्य से, यह काफी सफल नहीं है , इसलिए विभिन्न जटिल परिस्थितियां हैं जिनमें अर्धविराम, या कोष्ठक का एक अतिरिक्त सेट या इसी तरह के "संकेत" अवांछित शब्दार्थ से बचने के लिए आवश्यक हैं। ऐसी स्थितियाँ लगभग दुर्लभ होती हैं जो आम तौर पर आपको उनके बारे में सोचने की नहीं होती हैं। राय इस बात पर अलग है कि इसका मतलब यह है कि आपको रक्षात्मक रूप से पंचर होना चाहिए (यही वह है जो मुझे लगता है) या कभी भी पंचर नहीं करना चाहिए जब तक कि आप मुसीबत में नहीं भागते (यह वही है जो अधिकांश उपयोगकर्ता सोचते हैं)। अंत में, यह स्वयं आता है कि क्या आप एक पाखण्डी या एक आदर्श नागरिक के रूप में स्वयं की पहचान करते हैं।


धन्यवाद, क्या आप शायद ऐसी जटिल परिस्थितियों का उदाहरण (या कुछ :)) दे सकते हैं?
पेट्र पुडलक

3
मुझे डर था कि मैं यह पूछ लूंगा ... स्काला में प्रोग्रामिंग ने उनमें से कई को सूचीबद्ध किया जिसने मुझे आश्चर्यचकित किया, लेकिन मेरे पास इस समय मेरे पास पुस्तक नहीं है, और मैं विवरण भूल गया। यही वह बिंदु है जिसे मैं बनाने की कोशिश कर रहा था: अगर मैं इन असाधारण स्थितियों को याद रख पाता तो यह इतना बुरा नहीं होता, लेकिन जैसा कि यह है, मैं हमेशा अनिश्चित महसूस करता हूं कि क्या मैं वास्तव में अर्धविराम को छोड़ सकता हूं - इसलिए मैं नहीं।
किलिअन फोथ

हुह। मैं कभी भी ऐसी स्थिति में नहीं गया, जहां स्काला में अर्धविराम गुम होने से मुझे चोट लगी हो। मैं उन्हें कभी शामिल नहीं करता। मैंने भी केवल शौक-जैसी चीजों के लिए स्काला को क्रमादेशित किया है, इसलिए शायद यह मुझे जल्दी या बाद में काटेगा।
KChaloux

4

आप कितनी भाषाओं को समझना चाहते हैं? क्या आप इसकी खूबियों से खेलना चाहते हैं या नहीं? स्काला का वाक्य विन्यास स्पष्ट और संक्षिप्त कोड को प्रोत्साहित करता है; कुछ बढ़त के मामले जहां इसका फायदा उठाया जाता है, स्काला पार्सर के लिए समस्याएँ शिक्षाप्रद होती हैं (अर्थात, आप स्काला के बारे में मुठभेड़ करके और उनसे बचने के तरीके सीखकर सीखते हैं) और धीरे-धीरे ठीक हो जाते हैं (जैसे प्रत्यय संकेतन )। रक्षात्मक रूप से अर्ध-बृहदान्त्र का उपयोग करने का मतलब हो सकता है कि आपको इन मुद्दों के बारे में कभी नहीं सीखना होगा लेकिन क्या आप वास्तव में इसे अच्छी चीज के रूप में देखते हैं? इन मुद्दों के समाधान में आमतौर पर अन्य निहितार्थ होते हैं लेकिन आप इन संभावनाओं को याद करेंगे।

एक अन्य विचार यह है कि, जैसा कि काइलिन ने माना है, अधिकांश स्काला डेवलपर्स डिफ़ॉल्ट रूप से अर्ध-कॉलोन को छोड़ देते हैं। यदि आप स्वयं मुहावरेदार स्काला का उपयोग करने से बचते हैं तो आप अन्य लोगों के कोड के साथ काम करने की उम्मीद कैसे करते हैं? आप इसे ज़रूरत से ज़्यादा कठिन पाते हैं।

मैं पर्याप्त जोर नहीं दे सकता कि स्काला पार्सर की इन विशेषताओं को स्वच्छ, पुनः प्रयोग करने योग्य और कार्यात्मक (fp sense) कोड में प्रोत्साहित करने के लिए चुना गया था। उदाहरण के रूप में infix ऑपरेटर सिंटैक्स लें; यह डेवलपर्स को सरल, एकल-उद्देश्य विधियों के साथ कक्षाओं को प्रस्तुत करने के लिए प्रोत्साहित करता है जो एक साथ अच्छी तरह से रचना करते हैं। स्काला के संग्रह पुस्तकालय से पता चलता है कि कैसे काम कर सकता है। शास्त्रीय रूप से प्रशिक्षित जावा देवता जो इसे गले लगाते हैं वे बेहतर आदतों और अपने कोड के बारे में सोचने के नए तरीके विकसित करेंगे। जो लोग उन सभी परिचित डॉट्स और ब्रैकेट से चिपके रहते हैं, वे छूट जाएंगे। मैं तर्क देता हूं कि यह उन लोगों के लिए भी सच है जो अर्ध-उपनिवेश को छोड़ने के लिए डरपोक हैं।


8
-1 हाँ, संकलक के कारण भाषा सीखने के लिए "मजबूर" होना C ++ के साथ शैली से बाहर हो गया। इसके अलावा, कथनों के पीछे बहुत कम सबूत हैं, जो मैं इस तरह के पक्षपाती स्वर के साथ उत्तर के लिए चाहूंगा।
तेलेस्टाइन

(१) क्या @ टालस्टाइन ने कहा - यदि आप वास्तव में इस तरह से एक भाषा सीखना चाहते हैं, तो एक बिल्ली प्राप्त करें, वे कीबोर्ड पर बैठे हुए प्यार करते हैं क्योंकि वे आपकी शिक्षा की परवाह करते हैं। (2) को छोड़ते हुए अर्धविराम है कुछ भी नहीं है , अगर कुछ छोड़ने अर्धविराम तथ्य यह है कि इन छिपा है - साफ शैली या इसे प्रोत्साहित करने के साथ क्या करना हैं अलग बयान कि क्रमिक रूप से क्रियान्वित कर रहे हैं, और संभवतः दुष्प्रभाव। अर्धविराम छोड़ना आपको इस बारे में जागरूक करता है और इसलिए अधिक कार्यात्मक शैली पसंद करता है। इसलिए निर्णय विशुद्ध रूप से वाक्यात्मक है (उदाहरण के लिए, शैली, पार्सिंग, आदि)।
एली बरज़िले

जबकि "भाषा सीखने के लिए मजबूर" उड़ता नहीं है, "इसके लेखकों के रूप में भाषा का उपयोग करना" और "अधिकांश अन्य डेवलपर्स इसका उपयोग करते हैं" महत्वपूर्ण संदर्भ बिंदु हैं। कई डेवलपर्स के बीच सुसंगत शैली बनाए रखना उपयोगी है। इस उत्तर और @Killan Foth के दोनों से, अनुचर और अधिकांश डेवलपर्स स्पष्ट रूप से अर्धविराम को बाहरी रूप से देखते हैं।
सारा मेसर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.