int qempty()
{
return (f == r ? 1 : 0);
}
उपरोक्त स्निपेट में "क्या ? " का मतलब है? हम इसे किस से बदल सकते हैं?
int qempty()
{
return (f == r ? 1 : 0);
}
उपरोक्त स्निपेट में "क्या ? " का मतलब है? हम इसे किस से बदल सकते हैं?
जवाबों:
इसे आमतौर पर सशर्त ऑपरेटर के रूप में जाना जाता है , और जब इसे इस तरह इस्तेमाल किया जाता है:
condition ? result_if_true : result_if_false
... यदि condition
मूल्यांकन करता है true
, तो अभिव्यक्ति का मूल्यांकन करता है result_if_true
, अन्यथा इसका मूल्यांकन करता है result_if_false
।
यह सिंथेटिक चीनी है , और इस मामले में, इसे बदला जा सकता है
int qempty()
{
if(f == r)
{
return 1;
}
else
{
return 0;
}
}
नोट: कुछ लोग ?:
इसे " टर्नरी ऑपरेटर " के रूप में संदर्भित करते हैं , क्योंकि यह एकमात्र टर्नरी ऑपरेटर (यानी ऑपरेटर जो उस भाषा में तीन तर्क लेता है) का उपयोग कर रहा है।
a? b : c
शुगर पर विचार कर सकते हैं [&]() -> Type { if (a) return b; else return c; }()
।
यह एक टर्नरी ऑपरेटर है, यह मूल रूप से एक इनलाइन है यदि स्टेटमेंट
x ? y : z
जैसे काम करता है
if(x) y else z
सिवाय, आपके बयानों के बजाय भाव हैं; इसलिए आप इसे अधिक जटिल कथन के बीच में उपयोग कर सकते हैं।
यह succinct कोड लिखने के लिए उपयोगी है, लेकिन कोड को बनाए रखने के लिए कठिन बनाने के लिए इसका अत्यधिक उपयोग किया जा सकता है।
बस एक नोट, अगर आप कभी यह देखते हैं:
a = x ? : y;
यह मानक के लिए एक GNU एक्सटेंशन है ( https://gcc.gnu.org/oniltocs/gcc/Conditionals.html#Conditionals देखें )।
यह वैसा ही है
a = x ? x : y;
x = 1+1 ? : 0
; 2
मेरे कंपाइलर में सही ढंग से रिटर्न , और इसने कुछ भी शिकायत नहीं की।
इसे सशर्त ऑपरेटर कहा जाता है ।
आप इसे बदल सकते हैं:
int qempty(){
if (f == r) return 1;
else return 0;
}