पर समतुल्य प्रश्न सरल है, जावा में प्रसिद्ध आईआईएफ का कार्यात्मक समतुल्य है?जावा आईआईएफ फ़ंक्शन
उदाहरण के लिए:
IIf (vData = "S", True, False)
अग्रिम धन्यवाद।
पर समतुल्य प्रश्न सरल है, जावा में प्रसिद्ध आईआईएफ का कार्यात्मक समतुल्य है?जावा आईआईएफ फ़ंक्शन
उदाहरण के लिए:
IIf (vData = "S", True, False)
अग्रिम धन्यवाद।
vData.equals("S") ? true : false
या इस विशेष मामले में स्पष्ट रूप से एक बस
vData.equals("S")
** विशेष रूप से ** दूसरा बिट। यह बहुत से लोगों के लिए इतना स्पष्ट नहीं है। –
यह बिल्कुल वही बात नहीं है। 'आईआईएफ (एक्स, वाई, जेड) 'का उपयोग हमेशा' y' और 'z' का मूल्यांकन करेगा (दोनों दिखाई देने के दुष्प्रभावों का कारण बनता है), जबकि' x?y: z' केवल 'y' xor' z' को उजागर करेगा (केवल एक के दृश्य प्रभाव को दिखाई देगा)। – Gabe
@Gabe: वीबी सामान्य रूप से शॉर्ट-सर्किट मूल्यांकन का समर्थन नहीं करता है। हालांकि वीबीएनईटी – sblundy
हाँ, त्रिगुट सेशन ? :
vData.equals("S") ? true : false
त्वरित प्रतिक्रिया के लिए धन्यवाद ... – seba123neo
लिख सकता है अगर तार्किक iff के समान है।
boolean result;
if (vData.equals("S"))
result = true;
else
result = false;
या
boolean result = vData.equals("S") ? true : false;
या
boolean result = vData.equals("S");
संपादित करें: हालांकि इसकी काफी संभावना है कि आप एक चर की जरूरत नहीं है के बजाय आप परिणाम पर कार्य कर सकते हैं। जैसे
if (vData.equals("S")) {
// do something
} else {
// do something else
}
BTW यह
if ("S".equals(vData)) {
अंतर उपयोग करने के लिए किया जा रहा है अच्छा अभ्यास माना जा सकता है कि vData अशक्त पहला उदाहरण एक अपवाद फेंक होगा जबकि दूसरा झूठी हो जाएगा है। आपको खुद से पूछना चाहिए कि आप क्या करना पसंद करेंगे।
उत्तर के लिए धन्यवाद। – seba123neo
जावा त्रिगुट ऑपरेटर और IIf
के बीच मुख्य अंतर यह है कि IIf
का मूल्यांकन करता है दोनों दिए गए मान और नहीं लौटाए गए मूल्य, जबकि त्रिगुट ऑपरेटर शॉर्ट सर्किट और केवल मान दिया आकलन करती है। यदि मूल्यांकन के दुष्प्रभाव हैं, तो दोनों बराबर नहीं हैं।
आप निश्चित रूप से IIf
को स्थिर जावा विधि के रूप में पुन: कार्यान्वित कर सकते हैं। उस स्थिति में, दोनों पैरामीटर का मूल्यांकन कॉल समय पर किया जाएगा, जैसे IIf
के साथ। लेकिन कोई अंतर्निहित जावा भाषा सुविधा नहीं है जो बिल्कुल IIf
के बराबर होती है।
public static <T> T iif(boolean test, T ifTrue, T ifFalse) {
return test ? ifTrue : ifFalse;
}
(ध्यान दें कि ifTrue
और ifFalse
तर्क जावा में एक ही प्रकार का होना चाहिए, या तो त्रिगुट ऑपरेटर का उपयोग या इस सामान्य विकल्प का उपयोग कर।)
धन्यवाद, मैं समझता हूं, समारोह के समान और भी, वीबी नेट में OrElse, है ना? – seba123neo
हां, यह शॉर्ट सर्किटिंग का एक और उदाहरण है। – dkarp
JJnguy: नहीं, 'iif' एक है इनलाइन-अगर फ़ंक्शन जो बूलियन वैल्यू को अपने पहले पैरामीटर के रूप में लेता है, और जब सत्य दूसरे पैरामीटर को देता है, और जब झूठा तीसरा पैरामीटर देता है। – Gabe
वंशावली के लिए: कृपया ध्यान दें कि स्वीकृत उत्तर वास्तव में शॉर्ट सर्किटिंग के संबंध में सही नहीं है। इसके बजाय http://stackoverflow.com/questions/822810/iif-equivalent-in-c पढ़ें ... – dkarp