कोमा एक विभाजक के रूप में बनाम एक अल्पविराम के रूप में अल्पविराम


14

में इस वीडियो , स्पीकर का कहना है:

"कुछ लोग भ्रमित होते हैं कि कॉमा कैसे काम करते हैं। उन्हें लगता है कि उन्हें विभाजक की बजाय परिसीमन करना चाहिए। अब आप उनके बारे में सोच सकते हैं।"

मैं एक सीमांकक और एक विभाजक के बीच का अंतर नहीं समझता (अगर वहाँ एक है)। वीडियो में निहितार्थ यह है कि अब (कि अनुगामी अल्पविराम वैध हैं), कोई उन्हें विभाजक के बजाय परिसीमनकर्ता के रूप में सोच सकता है ...

Btw भाषा में जावास्क्रिप्ट है। मेरी समझ से, अल्पविराम टोकन के दो अर्थ हैं:

  • एक ऑपरेटर के रूप में (शायद ही कभी इस्तेमाल किया जाता है)
  • एक विभाजक के रूप में (तर्क और पैरामीटर सूची, सरणी और ऑब्जेक्ट शाब्दिक, आदि)

मुझे यकीन नहीं है कि कैसे एक अल्पविराम में फिट बैठता है ...


2
यह बात क्यों है?
jfriend00

7
@ jfriend00 अगर शब्दों के सीमांकक और विभाजक के बीच अंतर है, तो मैं इसे जानना चाहता हूं ... मुझे सामान जानना पसंद है:)
stuffime Vidas

3
@ jfriend00 वीडियो देखें। अगर IE लोग आपके बारे में संकीर्ण रूप से नहीं सोच रहे थे, तो शायद हमारे पास अभी तक एक और जावास्क्रिप्ट पोर्टेबिलिटी स्नफू नहीं होगा ...
yannis

3
@ @ImeVidas अच्छा सवाल। BTW के स्पीकर डगलस क्रॉकफोर्ड हैं, याहू के वरिष्ठ जावास्क्रिप्ट वास्तुकार, जो JSON और जावास्क्रिप्ट के लेखक : द गुड पार्ट्स को लोकप्रिय बनाने के लिए जाने जाते हैं । यह एक अच्छा विचार है कि आप विस्तार से ध्यान दें, खासकर जब एक क्रॉकफोर्ड वीडियो देखते हैं, क्योंकि वह शायद ही कभी सामान के लिए कोई सांस बर्बाद करता है जो कोई फर्क नहीं पड़ता।
यानिस डे

1
@YannisRizos Yea, मैं क्रॉकफोर्ड को जानता हूं। वह एक महान शिक्षक हैं। :)
इमे विदा

जवाबों:


15

यदि आप अल्पविराम को विभाजक के रूप में मानते हैं, तो आप उन्हें अलग करने के लिए एक अनुक्रम की दो वस्तुओं के बीच अल्पविराम का उपयोग करते हैं, यदि आप इसे सीमांकक मानते हैं, तो आप प्रत्येक आइटम के बाद यह इंगित करने के लिए डालते हैं कि कोई आइटम कहाँ समाप्त होता है। नीचे दिए गए उदाहरण देखें:

कोमा एक विभाजक के रूप में

var myCars = ["Saab", "Volvo", "BMW" ];

एक परिसीमन के रूप में कोमा

var myCars = ["Saab", "Volvo", "BMW", ];

मुझे लगता है कि वीडियो कहता है कि आप अल्पविराम को विभाजक और सीमांकक दोनों के रूप में सोच सकते हैं क्योंकि दोनों सरणी उदाहरण ऊपर मान्य हैं। दूसरी ओर जावास्क्रिप्ट में आप केवल अल्पविराम का उपयोग किसी फ़ंक्शन की पैरामीटर सूची में विभाजक के रूप में कर सकते हैं, जैसे

foo(a, b, c) // separator, OK

जबकि मान्य है

foo(a, b, c,) // delimiter, NOT OK!

मान्य नहीं है।

संपादित करें

जहां तक ​​मैं समझता हूं, विकिपीडिया पृष्ठ के अनुसार एक विभाजक एक सीमांकक का एक विशेष मामला है , अर्थात् एक जिसे विभिन्न पाठ क्षेत्रों के बीच रखा जाता है जिनकी सीमाओं को चिह्नित करने की आवश्यकता होती है। वास्तव में, विकिपीडिया पृष्ठ का नाम अल्पविरामों के उदाहरण के रूप में अल्पविराम से अलग हो गया है। तो, सामान्य तौर पर आप अलग-अलग तरीकों से सीमांकक का उपयोग कर सकते हैं: पाठ के हिस्से के दोनों तरफ, पहले, बाद में, चिह्नित होने के लिए।

कारण है कि मैं व्याख्या सीमांकक के रूप में "मार्कर है कि एक आइटम के बाद डाला जाता है" जावास्क्रिप्ट संदर्भ में शाब्दिक शृंखला उदाहरण है, जिसके लिए भी मान्य है से प्रेरित हुआ सी, सी ++, जावा और (मुझे लगता है कि मैं पर कम से कम एक सवाल को देखा है स्टैक ओवरफ्लो इस विषय के बारे में)।

एक चरित्र के समान लेकिन अलग-अलग उपयोग का एक और उदाहरण स्टेटिकोलन है जो एक स्टेटमेंट सीमांकक (सी, सी ++, जावा, एडा, ...) के रूप में और एक स्टेटमेंट सेपरेटर (पास्कल) के रूप में है। इसलिये

if (a > 0)
    printf("Positive\n");
else
    printf("Non positive\n");

सही सी कोड है, जबकि

IF a > 0 THEN
    WriteLn('Positive'); (* Syntax error here! *)
ELSE
    WriteLn('Non positive');

कोई सही पास्कल कोड नहीं है।

शायद टर्मिनेटर परिसीमन की तुलना में बेहतर / कम अस्पष्ट शब्द होगा ? उदाहरण के लिए, कोई व्यक्ति इस प्रकार उद्धरण तैयार कर सकता है: "कुछ लोग भ्रमित होते हैं कि कॉमा कैसे काम करते हैं। उन्हें लगता है कि उन्हें आइटम विभाजक के बजाय आइटम टर्मिनेटर होना चाहिए । अब (कई मामलों में) आप उनके बारे में भी सोच सकते हैं।"


हां, पैरामीटर सूचियों में अल्पविराम को विभाजक के रूप में उपयोग किया जाना चाहिए, जबकि सरणी में शाब्दिक रूप से अल्पविराम या तो एक विभाजक या सीमांकक के रूप में इस्तेमाल किया जा सकता है। या आम आदमी की शर्तों में: आप अंतिम सरणी तत्व के बाद अल्पविराम लगा सकते हैं, लेकिन आपके पास नहीं है।
इमे विद्यास

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

@ Like समय विद्या - विकिपीडिया किसी अन्य संदर्भ की तरह एक संदर्भ है, यह एकमात्र संदर्भ नहीं है।
माइकल रिले - AKA Gunny

@CapeCodGunny हां, मैं सिर्फ इशारा कर रहा हूं कि संघर्ष की परिभाषाएं हैं। मैं अन्य संदर्भों से भी परिभाषाएँ देखना चाहूंगा।
06इमे विदा

7

एक विभाजक को दो मूल्यों के बीच रखा जाएगा, उन्हें अलग करना।

one,two,three

एक परिसीमन क्षेत्र को परिसीमित करेगा - यह दोनों तरफ होगा।

,one,two,three,

जब इस तरह से लिया जाता है, तो इससे बहुत कम फर्क पड़ता है, इसलिए जब तक कोई व्यक्ति अलग-अलग क्षेत्रों को बाहर निकाल सकता है।

यह प्रोग्रामिंग लैंग्वेज जैसे जावास्क्रिप्ट में कॉमा के उपयोग के लिए एक पूरी तरह से अलग मुद्दा है। यह एक स्ट्रिंग के भीतर मानों को अलग / अलग करने के बारे में है।


1
आह हाँ, यह समझ में आता है।
44इमे विद्यास

मैं आपके परिसीमन के स्पष्टीकरण से असहमत हूं। आपके स्पष्टीकरण के आधार पर, यह एक, दो, तीन, अब होगा, दोनों तरफ परिसीमन है।
माइकल रिले - AKA Gunny

1
@CapeCodGunny - आप गलत व्याख्या कर रहे हैं। मेरे द्वारा दिए गए उदाहरण में प्रत्येक मूल्य से पहले और बाद में एक अल्पविराम है । स्ट्रिंग के अंत और अंत में नहीं अल्पविराम अंत सीमांकक के रूप में काम करते हैं और सीमांकक शुरू करते हैं।
ऊद

@ यह विकिपीडिया लेख अलग परिभाषा प्रदान करता है। इसके अनुसार, आपका पहला उदाहरण एक क्षेत्र परिसीमन होगा, जबकि आपका दूसरा उदाहरण उस लेख में बिल्कुल भी नहीं दिखाया गया है।
इमे विदा

1
सावधान का शब्द! var myNumbers = ['one','two','three', ];(अंत में अल्पविराम) सरणी लंबाई 3 के रूप में दे देंगे, लेकिन सामने के अल्पविराम के कारण var myNumbers = [,'one','two','three'];लंबाई 4 के रूप में देता है
RBT
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.