2009-01-07 14 views
6

मैं इस बयान के आधार पर पाया एक बूलियन मान स्थापना कुछ पुराने कोड है और यह मुझे एक यह पता लगाने की दूसरी ले लिया ...एक पूर्णांक

IsTestActive = (TestStateID == 1 ? true : false); 

कृपया मुझे ठीक कर लें मैं गलत हूँ लेकिन नहीं है यह इस जैसा ही है ?:

IsTestActive = (TestStateID == 1); 

यदि ऐसा है, तो आप कभी भी पहले क्यों उपयोग करना चाहते हैं? कौन सा अधिक पठनीय है? (मुझे लगता है कि बाद वाला, लेकिन मैं देखना चाहता हूं कि दूसरों को क्या लगता है।)

उत्तर

32

हाँ, यह बिल्कुल वही है।

हां, उत्तरार्द्ध अधिक पठनीय है।

+2

मैं केवल पूर्व लोगों के 2 प्रकार के द्वारा प्रयोग किया देखा है: जो लोग बुलियन तर्क की मौलिक समझ की कमी है, या जो लोग सोचते हैं कि टर्नरी ऑपरेटर वास्तव में अच्छा है। –

+1

पूर्व में सैद्धांतिक रूप से एक मिनट परफ हिट होगा, हालांकि यदि आप उस स्तर के प्रदर्शन के बारे में सोच रहे हैं तो मुझे संदेह है कि आपको बड़ी समस्याएं हैं ... –

1

नहीं, पहले संस्करण का उपयोग कर के लिए कोई व्यावहारिक कारण नहीं है, दुनिया, सही नहीं है and neither are programmers.

5
IsTestActive = (TestStateID == 1); 

निश्चित रूप से अधिक पठनीय है।

आप परिभाषित करने के लिए एक मामला बना सकता है एक निरंतर

ACTIVE = 1 

तो जिस तरह से कोड है, बूलियन IsTestActive के राज्य

(TestStateID == ACTIVE) 

साथ बूलियन चर IsTestActive की जगह होगा अगर TestStateID की स्थिति बुलियन को अपडेट किए बिना बदलती है तो गलत हो। बुलियन को छोड़कर और आपके द्वारा दी जाने वाली जानकारी के वास्तविक स्रोत का परीक्षण करने से इस त्रुटि की संभावना दूर हो जाएगी।

+1

अच्छी बात, मुझे जादू पूर्णांक से नफरत है - लेकिन मुझे लगता है कि ओपी सिर्फ उदाहरण पोस्ट कर रहा था कोड – annakata

+0

यह हो सकता है, लेकिन मैं उत्पादन कोड में इस तरह अस्थायी चर का उपयोग कर बहुत से लोगों को देखता हूं। –

0

पठनीयता इस पर निर्भर करता है कि आप इस निर्माण का उपयोग कहां करते हैं। मुझे अक्सर

(TestStateID == 1 ? true : false) 

अधिक पढ़ने योग्य लगता है।

0

ठीक है, मैं अन्य भाषाओं के बारे में पता नहीं है, लेकिन PHP में यह और भी आसान प्रकार कास्टिंग है, का उपयोग करते हुए:

$IsTestActive = (boolean)$TestStateId; 
संबंधित मुद्दे