यह वास्तव में इसका मतलब है कि यदि कथन अब स्विच स्टेटमेंट जैसे पैटर्न मिलान का समर्थन करते हैं। उदाहरण के लिए, यदि अब enum के मामलों पर "स्विच" करने के लिए कथन/अन्यथा का उपयोग करने का एक वैध तरीका निम्नलिखित है।
enum TestEnum {
case One
case Two
case Three
}
let state = TestEnum.Three
if case .One = state {
print("1")
} else if case .Two = state {
print("2")
} else {
print("3")
}
और निम्नलिखित अब पता चल सके कि someInteger
दी गई सीमा के भीतर है का एक स्वीकार्य तरीका है।
let someInteger = 42
if case 0...100 = someInteger {
// ...
}
यहाँ से The Swift Programming Language
let someOptional: Int? = 42
// Match using an enumeration case pattern
if case .Some(let x) = someOptional {
print(x)
}
// Match using an optional pattern
if case let x? = someOptional {
print(x)
}
स्रोत
2015-06-09 04:04:45
कुछ और वैकल्पिक पद्धति का उपयोग कर उदाहरण हैं और पिछले दो बयान कर रहे हैं - अगर मैं इसे सही ढंग से समझ - करने के लिए अच्छी तरह से ज्ञात बराबर 'यदि जाने एक्स = someOptional {} '। –
यह एक रोमांचक संभावना है, स्विफ्ट बाहर आने के बाद से मैं इसके लिए इंतजार कर रहा हूं। – cjnevin
@MartinR हाँ वे हैं, जो आपको आश्चर्यचकित कर सकते हैं कि 'अगर चलो x = someOptional' वैकल्पिक बाध्यकारी वाक्यविन्यास का उपयोग करने के बजाय वैकल्पिक पैटर्न उपयोगी क्यों हो सकता है। वास्तव में यह बहुत उपयोगी नहीं है जब यहां सरल 'if' कथनों में उपयोग किया जाता है, लेकिन 'for' या' while' loops के साथ अधिक उपयोगी होता है (जैसे 'केस के लिए x? ArrayOfOptionalInts' में जो केवल गैर-शून्य मानों पर लूप करता है सरणी), या अधिक जटिल 'if' जैसे स्टेटमेंट्स' if if let (x ?, y?) में कुछ फनकटैटरेटर्नैटुपुपऑफऑप्शनल्स() 'जो केवल तभी सही होगा यदि ट्यूपल में दोनों तत्व गैर-शून्य हैं और फिर एक्स और वाई दोनों को बाध्य करते हैं एक ही समय में। – AliSoftware