Java
कोड style
में कौन सा बेहतर है?बूलियन चेकिंग अगर()
boolean status = true;
if(!status) {
//do sth
} else {
//do sth
}
या
if(status == false) {
//do sth
} else {
//do sth
}
Java
कोड style
में कौन सा बेहतर है?बूलियन चेकिंग अगर()
boolean status = true;
if(!status) {
//do sth
} else {
//do sth
}
या
if(status == false) {
//do sth
} else {
//do sth
}
पूर्व ज़ाहिर है, है। लेटर अनावश्यक है, और केवल यह दिखाने के लिए चला जाता है कि आप बूलियन की अवधारणा को बहुत अच्छी तरह समझ नहीं पाए हैं।
एक और सुझाव: अपने boolean
चर के लिए एक अलग नाम चुनें। this Java style guide के अनुसार:
है उपसर्ग बूलियन चर और तरीकों के लिए इस्तेमाल किया जाना चाहिए।
isSet
,isVisible
,isFinished
,isFound
,isOpen
यह
boolean
तरीकों और चर जावा कोर पैकेज के लिए सूर्य से इस्तेमाल किया के लिए नामकरण परंपरा है।
is
उपसर्ग का उपयोग करते हुए एक आमstatus
याflag
तरह ख़राब बूलियन नाम चुनने की समस्या का हल।isStatus
याisFlag
बस फिट नहीं है, और प्रोग्रामर को सार्थक नाम चुनने के लिए मजबूर होना पड़ता है।boolean
चर के लिएसेटर तरीकों में के रूप में उपसर्ग सेट अप करना होगा:
void setFound(boolean isFound);
is
उपसर्ग है कि कुछ स्थितियों में अच्छी तरह फिट करने के लिए कुछ विकल्प हैं। ये हैंhas
,can
औरshould
उपसर्ग:boolean hasLicense(); boolean canEvaluate(); boolean shouldAbort = false;
'good_status' या' fair_weather_status' या 'status_known'' या 'status_unknown' या यहां तक कि 'status_malus__vana_salus__semper_dissolubilis' आज़माएं। :) – tchrist
पूर्व। उत्तरार्द्ध केवल शब्दशः जोड़ता है।
यह भी अधिक पठनीय और अच्छी प्रथा है।
if(!status){
//do sth
}else{
//do sth
}
स्विच में नहीं हो सकता है, सिवाय इसके कि मैं उन क्लॉज को फ़्लिप कर दूंगा जो आप परीक्षण करते हैं (स्थिति) –
इसके अलावा, आप वैरिएबल नाम को "is-" उपसर्ग के साथ संशोधित कर सकते हैं ताकि यह निर्धारित किया जा सके कि डिफ़ॉल्ट मान क्या है है। –
पहले एक, या if (status) { /*second clause*/ } else { /* first clause */ }
संपादित
तो दूसरा रूप वास्तव में वांछित है, तो if (false == status) <etc>
, भद्दा, जबकि, शायद सुरक्षित (wrt लिखने की त्रुटियों) है।
+1 (झूठी == स्थिति) के लिए +1, जो 'if (0 == i)' प्रश्न के लिए मार्गदर्शन भी नहीं देता है, – subsub
मैं सुझाव है कि आप कार्य करें:
if (status) {
//positive work
} else {
// negative work
}
==
परीक्षण, जबकि जाहिर बेमानी है, यह भी एक भी =
टाइपो जो एक काम में परिणाम होगा के जोखिम को चलाते हैं।
पहला वाला। लेकिन एक अन्य बिंदु बस, निम्नलिखित भी अपने कोड अधिक पठनीय होगा:
if (!status) {
// do false logic
} else {
// do true logic
}
नोट if
और (
के बीच अतिरिक्त स्पेस देखते हैं कि, और यह भी else
बयान से पहले।
संपादित
, @Mudassir द्वारा बताया गया है, अगर वहाँ नहीं विधि में अन्य साझा कोड तर्क का प्रयोग करें, तो बेहतर शैली होगा:
if (!status) {
// do false logic
}
// do true logic
@Downvoter - टिप्पणी करने की देखभाल? –
हाँ, मैंने आपका जवाब घटा दिया। लेकिन यह व्यक्तिगत नहीं है। – Mudassir
@ मुदासिर * श्वास * ... –
अगर तुम देखो इस पृष्ठ के विकल्पों पर, निश्चित रूप से पहला विकल्प बेहतर दिखता है और दूसरा एक और वर्बोज़ है। लेकिन यदि आप किसी बड़ी कक्षा के माध्यम से देख रहे हैं कि किसी और ने लिखा है, तो वह सद्भावना सशर्त परीक्षण या नहीं, तुरंत महसूस करने के बीच अंतर कर सकती है।
पर्ल से दूर जाने के कारणों में से एक कारण यह है कि यह विराम चिह्न पर इतनी भारी निर्भर करता है, जो पढ़ने के दौरान व्याख्या करने के लिए बहुत धीमी है।
मैं जानता हूँ कि मैं यहाँ outvoted कर रहा हूँ, लेकिन इतना दूसरों इसे और अधिक सही पढ़ सकते हैं मैं लगभग हमेशा अधिक स्पष्ट कोड का साथ होगा। फिर फिर, मैं कभी भी "स्थिति" नामक बुलियन वैरिएबल का उपयोग नहीं करूंगा। शायद असफल या सिर्फ सफलता है, लेकिन "स्थिति" सच या गलत होने का मतलब आकस्मिक पाठक को सहजता से कुछ भी नहीं है। जैसा कि आप बता सकते हैं, मैं कोड पठनीयता में बहुत हूं क्योंकि मैंने दूसरों को इतना कोड पढ़ा है।
पहली शैली बेहतर है। हालांकि आप बेहतर चर नाम
का उपयोग करना चाहिए यह वास्तव में भी कैसे आप अपने चर नाम पर निर्भर करता है।
जब लोग पूछ रहे हैं "कौन सा बेहतर अभ्यास है" - यह स्पष्ट रूप से तात्पर्य है कि दोनों सही हैं, इसलिए यह केवल एक बात है जिसे पढ़ने और बनाए रखना आसान है।
आप अपने चर "स्थिति" (जो आपके उदाहरण कोड में मामला है) का नाम है, मैं बहुत
if(status == false) // if status is false
देखने के लिए दूसरी ओर, पसंद करेंगे अगर आप अपने चर isXXX नाम दिया था (जैसे isReadableCode), तो पूर्व अधिक पठनीय है। पर विचार करें:
if(!isReadable) { // if not readable
System.out.println("I'm having a headache reading your code");
}
मेरा व्यक्तिगत भावना जब यह
if(!status) : if not status
if(status == false) : if status is false
पढ़ने अगर आप स्थिति पढ़ने के आदी नहीं हैं करने के लिए आता है!। मुझे दूसरी तरफ से कोई नुकसान नहीं दिख रहा है।
अगर आप स्थिति मैं बात करने के बजाय "सक्रिय" का उपयोग करते हैं (! सक्रिय) अधिक पठनीय
'स्विच (स्थिति) {मामले सच: {...; टूटना; } चूक: { ...; टूटना; }} ':) – tchrist
@ क्रिसमस: ... और आपका मुद्दा है? – missingfaktor
स्विच (बूलियन) गलत है, बूलियन – ashishdhiman2007