2017-04-12 9 views
7

जैसा कि शीर्षक कहता है, मैं बस एक ऐसे मामले में आया जहां && (AND) और , स्विफ्ट में एक ही परिणाम देते हैं।स्विफ्ट में "&&" और "," समान हैं?

let a = 5 
let b = 6 

if a<6, b>0 { 
    print("should be true") 
} 

if a<6, b<0 { 
    print("should be false") 
} 

if a>6, b>0 { 
    print("should be false") 
} 

if a>6, b<0 { 
    print("should be false") 
} 

यह केवल लॉग:: मैं नीचे दिए गए कोड का परीक्षण किया

सिर्फ && तरह सच

तो, , के व्यवहार है होना चाहिए, मैं सही हूँ?

+0

यह 'if' कथन के लिए सच प्रतीत होता है, लेकिन आप 'वापसी (ए> 4, बी <4)' जैसे कोड नहीं लिख सकते हैं, इसलिए दोनों समान नहीं हैं – XmasRights

+2

व्यावहारिक रूप से यह * शर्त-सूची की तरह व्यवहार करता है * 'गार्ड' के बाद, 'अगर चलो' और 'गार्ड चलो' – vadian

उत्तर

11

इन्हें समान परिस्थितियों में उपयोग किया जा सकता है लेकिन इसका मतलब यह नहीं है कि वे बिल्कुल वही हैं।

पर विचार करें:

if (a && b) || c 

आप नहीं लिख सकते हैं

if (a, b) || c 

भी a && b || ca, b || c से अलग है।

if a, b तरह

if a { 
    if b { 
     ... 
    } 
} 

दोनों भाव true के लिए मूल्यांकन किया जाना है कुछ है लेकिन वे अभी भी दो अलग-अलग अभिव्यक्तियां हैं। हमें && कल्पना नहीं करना चाहिए।

हमें , ऑपरेटर क्यों चाहिए?

ऑपरेटर को बुलियन स्थितियों के साथ वैकल्पिक बाध्यकारी को जोड़ने के लिए आवश्यक है, उदा।

if let a = a, a.isValid() { 

&& क्योंकि हमें ऐसी स्थितियों में मदद नहीं करेगा।

संबंधित मुद्दे