"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > सशर्त विवरणों में असाइनमेंट संचालन

सशर्त विवरणों में असाइनमेंट संचालन

2025-05-02 पर पोस्ट किया गया
ब्राउज़ करें:886

सशर्त विवरणों में असाइनमेंट संचालन

यह php में बहुत आम है इस तरह से लिखे गए कोड को देखने के लिए:
if($summary = get_post_summary())
{
    return $summary;
}
मैं जिस स्थिति का उल्लेख कर रहा हूं वह किसी शर्त के अंदर असाइनमेंट है। चालाक रूप से, यह जावास्क्रिप्ट में भी किया जा सकता है, हालांकि यह बहुत कम आम है:
if(summary = document.getElementById("post-summary"))
{
    return summary.innerHTML;
}
पहली नज़र में आपको यह सोचने के लिए माफ कर दिया जाएगा कि यह एक टाइपो है! दरअसल, कुछ डिबगर्स एक चेतावनी के साथ झंडा लगाएंगे, यह पूछते हुए कि क्या आप समानता (==) के लिए एक परीक्षण का मतलब है और इसे असाइनमेंट (=) के रूप में गलत बताया है। लेकिन यह कोई गलती नहीं है - इसे समझने की कुंजी दो चीजों को समझने के लिए है : सबसे पहले, असाइनमेंट एक मान (आपके द्वारा निर्दिष्ट मान) देता है। दूसरा और सबसे महत्वपूर्ण बात यह है कि यह जो मूल्य लौटाता है वह सही या गलत का मूल्यांकन करता है, और अंततः यह निर्धारित करता है कि स्थिति गुजरती है या नहीं। अब, DOM मूल्यांकन और traversal की दुनिया में, यह तकनीक एक सुरक्षित और अनुमानित है क्योंकि DOM नोड्स या तो मौजूद हैं या वे शून्य हैं - और गलत का मूल्यांकन करने के लिए शून्य की आवश्यकता है । इसलिए ऊपर दिए गए कोड उदाहरण में, स्थिति सच का मूल्यांकन करेगी यदि "#पोस्ट-समरी" तत्व मौजूद है, या यदि यह नहीं है, तो गलत है। समान रूप से, आप एक अज्ञात पदानुक्रम को पुनरावृत्त करने के लिए एक ही चाल का उपयोग कर सकते हैं, जबकि क्रमिक माता -पिता के माध्यम से, जबकि () का उपयोग करते हैं। यह उदाहरण एक घटना लक्ष्य और #Document के बीच प्रत्येक नोड नाम का एक सरणी बनाता है:
var names = [], node = e ? e.target : event.srcElement;
do
{
    names.push(node.nodeName);
}
while(node = node.parentNode)
लेकिन जावास्क्रिप्ट में कहीं और, आप अपने आप को बहुत कम विश्वसनीय क्षेत्र में पा सकते हैं, क्योंकि कितने सही या कितने झूठे मान हो जाते हैं बिल्कुल भी नहीं सहज ज्ञान युक्त। सकारात्मक और नकारात्मक दोनों संख्याएं, उदाहरण के लिए, शून्य और नान को छोड़कर सच का मूल्यांकन करें । और विचित्र रूप से, एक वस्तु बूलियन कंस्ट्रक्टर के साथ बनाया गया हमेशा सच का मूल्यांकन करता है, भले ही यह नए बूलियन (गलत) के रूप में बनाया गया हो! तो चेतावनी दी! इस तरह के वाक्यविन्यास के लिए नहीं है; न ही इसका उपयोग एक घुड़सवार तरीके से किया जाना चाहिए, प्रकार के रूपांतरण और मनमाना मूल्यों की कास्टिंग पर ओवररेक्शन के साथ। लेकिन उपयुक्त परिस्थितियों में अच्छी तरह से उपयोग किया जाता है, यह तेजी से और दुबला कोड का उत्पादन करने के लिए कई स्थितियों को सरल बना सकता है। ] ]

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

मैं सशर्त अभिव्यक्तियों में असाइनमेंट से कैसे बच सकता हूं? उदाहरण के लिए, लिखने के बजाय यदि (x = getValue ()), आप x = getValue () लिख सकते हैं; if (x)। यह कोड को स्पष्ट करता है और भ्रम या कीड़े के जोखिम को कम करता है। उदाहरण के लिए, एक लूप में जहां एक मान को अपडेट किया जाना चाहिए और प्रत्येक पुनरावृत्ति में जाँच की जा सकती है, स्थिति में एक असाइनमेंट कोड को अधिक संक्षिप्त बना सकता है। हालाँकि, यह सावधानी के साथ किया जाना चाहिए और भ्रम से बचने के लिए कोड को स्पष्ट रूप से टिप्पणी की जानी चाहिए।

असाइनमेंट ऑपरेटर और समानता ऑपरेटर के बीच क्या अंतर है? उदाहरण के लिए, x = 5 वैरिएबल x को मान 5 प्रदान करता है। दूसरी ओर, समानता ऑपरेटर (==) का उपयोग दो मूल्यों की तुलना करने के लिए किया जाता है। उदाहरण के लिए, यदि (x == 5) यह जांचता है कि क्या x का मान 5 के बराबर है। हालांकि, टाइपस्क्रिप्ट में सख्त प्रकार की जाँच होती है जो शर्तों में असाइनमेंट के कारण होने वाली संभावित त्रुटियों को पकड़ने में मदद कर सकती है। उदाहरण के लिए, यदि आप किसी एक वैरिएबल को एक स्ट्रिंग असाइन करने का प्रयास करते हैं, जिसे किसी स्थिति के अंदर एक नंबर माना जाता है, तो टाइपस्क्रिप्ट एक संकलन-समय त्रुटि देगा।

शर्तों में असाइनमेंट के कारण होने वाले कुछ सामान्य कीड़े क्या हैं? उदाहरण के लिए, यदि (x = 5) हमेशा सच होगा क्योंकि यह 5 से x असाइन करता है, बजाय यह जाँचने के कि क्या x 5 के बराबर है। यह कोड में अप्रत्याशित व्यवहार का कारण बन सकता है।

मैं शर्तों में असाइनमेंट के कारण होने वाले मुद्दों को कैसे डिबग कर सकता हूं? एक दृष्टिकोण यह सुनिश्चित करने के लिए सभी सशर्त बयानों की सावधानीपूर्वक जांच करना है कि वे सही ऑपरेटरों का उपयोग कर रहे हैं। एक Linter या एक स्थिर कोड विश्लेषण उपकरण का उपयोग करने से इन मुद्दों को पकड़ने में भी मदद मिल सकती है। उदाहरण के लिए, पायथन शर्तों में असाइनमेंट की अनुमति नहीं देता है और यदि आप ऐसा करने का प्रयास करते हैं तो एक सिंटैक्स त्रुटि देंगे। हमेशा आपके द्वारा उपयोग किए जा रहे प्रोग्रामिंग भाषा के सिंटैक्स नियमों की जांच करें।

क्या शर्तों में असाइनमेंट के लिए कोई विकल्प हैं? एक सामान्य विकल्प उस मूल्य को धारण करने के लिए एक अस्थायी चर का उपयोग करना है जिसे असाइन और चेक करने की आवश्यकता है। यह कोड को स्पष्ट और समझने में आसान बना सकता है। एक अन्य विकल्प एक फ़ंक्शन का उपयोग करना है जो एक मान लौटाता है और फिर स्थिति में उस मान की जांच करता है।

नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3