मैं इस कोड में भाग गया जो Swift Algorithm Club में एक लिंक्ड सूची के स्विफ्ट कार्यान्वयन का हिस्सा है। कार्यान्वयन के दौरान लेखक वैकल्पिक रूप से अनचाहे करने से ठीक पहले थोड़ी देर के बाद case let
का उपयोग करता है। मैंने स्विच स्टेटमेंट के संदर्भ के बाहर इस्तेमाल किए गए केस कीवर्ड को कभी नहीं देखा है, और मैं सोच रहा हूं कि यह वास्तव में क्या करता है? क्या यह किसी भी तरह let next? = node.next
भाग को सही या गलत पर डाला गया है, शायद इस पर निर्भर करता है कि next?
शून्य हो गया है या नहीं?स्विफ्ट में स्विच स्टेटमेंट के बिना "केस" का क्या अर्थ है?
public var last: Node? {
if var node = head {
while case let next? = node.next {
node = next
}
return node
} else {
return nil
}
}
संबंधित: http://stackoverflow.com/questions/30720289/swift-2-pattern-matching-in-if। –
यह भी संबंधित है: http://stackoverflow.com/questions/36880109/what-are-the-advantages-use-cases-of-optional-patterns-introduced-in-swift-2/36881836#36881836 – jtbandes