में हालत मैं एक enum है:नहीं 'यदि यह मामला' बयान
enum E {
case A, B, C(Int)
}
let a: E = .A
यहाँ अगर a
के बराबर होती है .B
if case .B = a {
// works fine
}
लेकिन यह कैसे मैं विपरीत स्थिति की जांच कि मैं कैसे की जाँच करेगा है? (a
बराबर .B
)? यहाँ मैं क्या करने की कोशिश की है:
if case .B != a { // Variable binding in a condition requires an initializer
// ...
}
if !(case .B = a) { // Expected ',' separator
// ...
}
बेशक
, मैं इसे इस तरह से कर सकता है:
if case .B = a {
// ...
} else {
// put your code here
}
लेकिन यह अजीब है, साथ ही switch
कथन का उपयोग है। क्या कोई बेहतर विकल्प हैं?
संपादित करें: समाधान @Greg काम करता है का सुझाव दिया है, तो मामलों मूल्यों संबद्ध कर दिया है नहीं है, लेकिन ==
ऑपरेटर अतिभारित होने की जरूरत है अगर वे करते हैं। इसे पहली जगह में स्पष्ट करने के लिए खेद है।
अगर! (मामला बी = ए) {// अपेक्षित ',' विभाजक। - यह डबल == एकल नहीं होना चाहिए। – Greg
@ ग्रेग, नोप, एक ही त्रुटि –