रूबी में टर्नरी ऑपरेटर क्या है?
एक टर्नरी ऑपरेटर तीन भागों से बना होता है, यहीं से "टर्नरी" शब्द आता है। इन भागों में एक सशर्त विवरण शामिल है &दो संभावित परिणाम ।
दूसरे शब्दों में, एक टर्नरी आपको कोड की केवल एक पंक्ति में एक कॉम्पैक्ट if/else एक्सप्रेशन लिखने का एक तरीका देता है।
उदाहरण के लिए :
if apple_stock > 1 :eat_apple else :buy_apple end
यह बन सकता है :
apple_stock > 1 ? :eat_apple : :buy_apple
टर्नरी ऑपरेटर को धन्यवाद!
प्रश्न…
यह कैसे काम करता है, वास्तव में और उचित सिंटैक्स क्या है?
आइए जानें।
अपनी खुद की टर्नरी लिखने के लिए एक टेम्प्लेट
यदि हम एक टर्नरी ऑपरेटर के लिए सिंटैक्स को सामान्यीकृत करते हैं, तो आपको "रिक्त स्थान भरें" प्रकार का टेम्प्लेट मिलता है।
ऐसा दिखता है :
condition ? true : false
टर्नरी ऑपरेटर का पहला भाग शर्त . है , जैसा कि आप जांचना चाहते हैं कि यह सच है या नहीं।
उसके बाद, हमारे पास एक प्रश्न चिह्न है (?
)।
यह वाक्य रचना का हिस्सा है!
इस तरह रूबी को पता चलता है कि आप एक टर्नरी ऑपरेटर लिख रहे हैं।
अगला :
यदि शर्त true
हो जाती है, तो हमारे पास वह कोड है जिसे आप चलाना चाहते हैं , पहला संभावित परिणाम ।
फिर एक कोलन (:
), एक और वाक्यविन्यास तत्व ।
अंत में, हमारे पास वह कोड है जिसे आप चलाना चाहते हैं यदि शर्त false
है , दूसरा संभावित परिणाम ।
उदाहरण :
"chocolate".size > 4 ? "More than four characters" : "Less than four characters"
- स्थिति =>
"chocolate".size > 4
- अगर सही है =>
"More than four characters"
- अन्य =>
"Less than four characters"
ये तीन भाग प्रत्येक त्रिगुट व्यंजक के घटक हैं।
अपना ?
स्थिति और संभावित परिणामों के बीच, भले ही विधि का नाम एक प्रश्न चिह्न में समाप्त हो।
उदाहरण :
"".empty? ? "Yes" : "No"
इसे नज़रअंदाज करना आसान है, इसलिए इस तरह का कोड लिखते समय ध्यान दें।
जटिल टर्नरी ऑपरेटर्स
टर्नरी ऑपरेटर गलत तरीके से इस्तेमाल किया जा सकता है।
जब भी आप इसके साथ कुछ जटिल करना चाहते हैं तो यह एक बुरा विचार बनने लगता है।
उदाहरण के लिए :
आप एक चर के लिए एक त्रिगुट अभिव्यक्ति का परिणाम निर्दिष्ट कर सकते हैं।
a = 10 > 5 ? "yes" : "no"
यह ठीक है।
लेकिन यह तब और अधिक जटिल होने लगता है जब आपके संभावित परिणामों में रिक्त स्थान हो।
यहां एक उदाहरण दिया गया है :
10 > 5 ? (puts "yes") : (puts "no")
हमें यहां कोष्ठक का उपयोग करना है।
क्यों?
क्योंकि यदि आप ऐसा नहीं करते हैं, तो आपको एक SyntaxError
मिलता है ।
ये कोष्ठक इस कोड को समझने के लिए थोड़ा कठिन बनाते हैं , जो पठनीयता . से दूर ले जाता है और एक टर्नरी का उपयोग करने के स्टाइल लाभ।
टर्नरी का उपयोग करना या न करना चुनते समय इसे ध्यान में रखें।
टर्नरी ऑपरेटर और ऑपरेटर प्राथमिकता
एक और मुद्दा जो टर्नरी एक्सप्रेशन के साथ आता है, वह है ऑपरेटर की प्राथमिकता।
यहां एक उदाहरण दिया गया है :
[].tap { |a| a << "ccccc".size == 0 ? "empty" : "not empty" } # [5]
मैं या तो "empty"
. की अपेक्षा करूंगा या "not empty"
, हमारे टर्नरी के लिए दो संभावित परिणाम, लेकिन हमें 5
. मिला इसके बजाय।
क्या हो रहा है?
यह पता चला है कि रूबी और अधिकांश प्रोग्रामिंग भाषाएं प्राथमिकता के विभिन्न स्तरों के साथ अभिव्यक्तियों को संसाधित करती हैं।
साधारण अंकगणित में भी ऐसा होता है!
जैसा कि आप जानते हैं, गुणन का मूल्यांकन जोड़ और घटाव से पहले किया जाता है।
इसी तरह, रूबी में, एक विधि कॉल (<<
&size
) टर्नरी ऑपरेटर पर वरीयता लेता है, जो पिछले उदाहरण में व्यवहार की व्याख्या करता है।
आप इसे कोष्ठक से हल कर सकते हैं :
[].tap { |a| a << ("bbbbb".size == 0 ? "empty" : "not empty") } # ["not empty"]
अपने टर्नरी ऑपरेटरों को लिखते समय ध्यान रखने योग्य एक और बात!
वीडियो ट्यूटोरियल
सारांश
आपने रूबी में टर्नरी कंडीशनल ऑपरेटर के बारे में सीखा है, यह ऑपरेटर आपको कॉम्पैक्ट कंडीशनल स्टेटमेंट लिखने की अनुमति देता है जो स्थिति के आधार पर आपके कोड को पढ़ने में आसान या कठिन बना सकता है।
अब आपकी बारी है! आपने जो सीखा है उसका अभ्यास करें ताकि आप इस ज्ञान को अपने मस्तिष्क में स्थापित कर सकें।
पढ़ने के लिए धन्यवाद