2014-06-10 8 views
60

स्विफ्ट को संपूर्ण स्विच स्टेटमेंट की आवश्यकता है, और प्रत्येक मामले में निष्पादन योग्य कोड है। क्या कोई ऐसे मामलों को संभालने के लिए एक अच्छा तरीका तय कर चुका है जहां आप वास्तव में कुछ भी नहीं करना चाहते हैं? मैं वहां एक println() डाल सकता हूं, लेकिन वह गंदा लगता है।स्विफ्ट के संपूर्ण स्विच स्टेटमेंट्स के लिए नोप

+2

से संशोधित तुम सिर्फ एक को तोड़ने का उपयोग नहीं किया जा सका ;? – Firo

उत्तर

99

the book के अनुसार, तुम वहाँ break उपयोग करने की आवश्यकता:

प्रत्येक मामले के दायरे खाली नहीं हो सकता। नतीजतन, आपको प्रत्येक केस लेबल के कोलन (:) के बाद कम से कम एक कथन शामिल करना होगा। यदि आप किसी मिलान किए गए मामले के किसी भी कोड को निष्पादित करने का इरादा नहीं रखते हैं तो एक break कथन का उपयोग करें।

+5

ओह, फिर स्विफ्ट न्यूनतम आश्चर्य के कानून को तोड़ता है :) – Sulthan

+0

@ सुल्तान थोड़ा विचार करने के बाद, 'ब्रेक' समझ में आता है। यह मामला जल्दी से बाहर निकलने का तरीका प्रदान करता है, और विशेष रूप से * कुछ भी * करने का एक तरीका भी प्रदान करता है, भले ही आपके 'डिफ़ॉल्ट:' में गैर-कुछ भी व्यवहार नहीं है – Jiaaro

+6

@Jiaaro 'ब्रेक 'की आवश्यकता इंगित करती है कि' ब्रेक 'के बिना शाखाएं गिर सकता है – RnMss

7

तुम सिर्फ एक को तोड़ने का उपयोग कर सकते हैं:

let vegetable = "red pepper" 
var vegetableComment: String = "Nothing" 
switch vegetable { 
case "cucumber", "watercress": 
    break // does nothing 
case let x where x.hasSuffix("pepper"): 
    vegetableComment = "Is it a spicy \(x)?" 
default: 
    vegetableComment = "Everything tastes good in soup." 
} 

उदाहरण docs

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