जो उपकरण आप चाहते हैं वह संबंधित डेटा के साथ एक enum है।
enum Stuff {
case FloatyThing(Float)
case BoolyThing(Bool)
}
let objects = ["yes!" : Stuff.BoolyThing(true),
"number" : Stuff.FloatyThing(1.0)]
यह "ऑब्जेक्ट जो एक फ्लोट या बूल है" को कैप्चर करता है और बेहतर दस्तावेज़ीकरण और सुरक्षा प्रदान करता है।
डेटा अनलोड करने के लिए, आप एक स्विच बयान का उपयोग करें:
if let something = objects["yes!"] {
switch something {
case .FloatyThing(let f): println("I'm a float!", f)
case .BoolyThing(let b): println("Am I true?", b)
}
}
स्विच बयान के उपयोग सुनिश्चित करें कि आप सभी संभव प्रकार को कवर करता है और आप गलती से गलत प्रकार के रूप में डेटा अनलोड होने से रोकता है। बहुत अच्छा है कि संकलक आपको बहुत मदद कर सकता है।
अधिक जानकारी के लिए, स्विफ्ट प्रोग्रामिंग भाषा में "गणनाएं और संरचनाएं" देखें।
मैं भी कि यह कैसे आम समस्याओं से निपटने के लिए इस्तेमाल किया जा सकता का एक बहुत अच्छा उदाहरण के लिए एलेक्ज़ेंड्रोस सलाज़ार द्वारा Error Handling in Swift सलाह देते हैं।
स्रोत
2014-07-14 13:00:47
+1: बहुत तेज़। – Jesper
आप कैसे निर्धारित करते हैं कि मूल्य किस प्रकार है, या मूल्य पर स्विच करें? – Nick
कुछ और पृष्ठभूमि के साथ अपडेट किया गया। स्विफ्ट में यह एक बहुत ही शक्तिशाली विशेषता है और मुझे उम्मीद है कि यह बहुत आम है। –