2015-06-04 26 views
5

में सिंटैक्स का उपयोग करते हुए स्विफ्ट में अगर सिंटैक्स मुझे केवल एक निश्चित प्रकार के चरम पर निष्पादित करने की अनुमति देता है। उदाहरण के लिएस्विच स्टेटमेंट

class A {...} 
class B: A {...} 
class C: A {...} 

func foo(thing: A) { 
    if let b = thing as? B { 
     // do something 
    }else if let c = thing as? C { 
     // do something else 
    } 
} 

क्या स्विच स्विच के साथ इसे हासिल करना संभव है?

मैं इतनी दूर मिल गया है, लेकिन चर बी और सी ग्रुप ए के अभी भी कर रहे हैं, बी और सी में ढाला नहीं:

func foo(thing: A) { 
    switch thing { 
    case let b where b is B: 
     // do something 
    case let c where c is C: 
     // do something else 
    default: 
     // do something else: 
    } 
} 
+3

'अगर बी = वास्तव में बी के रूप में बात करें, यह कानूनी नहीं है। – matt

+2

ऐसा करने का सही तरीका है 'अगर बी = चीज़ को चलो? B'। –

+0

धन्यवाद, मैंने अपना प्रश्न – Okapi

उत्तर

11

यदि सब आप जानना चाहते हैं कि यह एक बी या सी है कि क्या है , आप बस case is B और case is C कह सकते हैं।

यदि आप कैप्चर करना और डालना चाहते हैं, तो case let b as B और case let c as C कहें।

+0

अपडेट किया है और स्विच केस पैटर्न और उपयोग की अच्छी सूची के लिए, मेरी पुस्तक देखें: http://www.apeth.com/swiftBook/ch05.html#_switch_statement – matt

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