मुझे यकीन नहीं है कि यह एक्सकोड में एक बग है या मैं स्विफ्ट में श्रेणियों को समझ नहीं पाया। यह दिखाने के लिए यहां कुछ कोड दिया गया है कि श्रेणी कैसे काम करती है:स्विफ्ट में श्रेणियों की तुलना कैसे करें?
let range = 0..<5
contains(range, 0) // true
contains(range, 5) // false
range.startIndex == 0 // true
range.endIndex == 5 // true
let str = "Hello, playground"
str.rangeOfString("Hello")! // 0..<5
बढ़िया!
let str = "Hello, playground"
if let range = str.rangeOfString("Hello") {
if range.startIndex == 0 {
print("str starts with 'Hello'")
}
}
मैं लाइन है कि पढ़ता if range.startIndex == 0 {
प्रकार का एक तर्क फूल के साथ आह्वान नहीं किया जा सकता '==' (String.index में त्रुटि निम्न हो रही है, IntegerLiteralConvertible: अब यह असली कोड का उपयोग करते हैं) '
अच्छा जवाब। मुझे लगता है कि यह सब समारोह बेहतर यूनिकोड समर्थन के लिए है। उदाहरण के लिए यह '"ﷺ" 'जैसे पागल पात्रों का समर्थन करता है। मैंने अभी कोशिश की है – Mohsen
बिल्कुल, यह यूनिकोड समर्थन के लिए ऐसा है। असल में यह आपको एक समय में एक चरित्र के चारों ओर कूदने देता है, भले ही वर्ण बहु-बाइट हों। –
@ मोहनन यह एक पागल चरित्र नहीं है बल्कि अरबी में एक वाक्य है जो कहता है: «उस पर शांति» (صلى الله عليه وآله وسلم) मुसलमान पैगंबर की प्रशंसा करने के लिए उपयोग करते हैं। एक सुविधा के रूप में (जैसा कि अक्सर प्रयोग किया जाता है) यह वाक्य एक पैक वाले लिगरेचर ग्लाइफ (कई अन्य लोगों) के रूप में मौजूद है। उम्मीद है कि यह एक रहस्य uncovers :-) –