我不確定它是否是XCode中的錯誤,或者我不瞭解Swift中的範圍。這裏是一些代碼來顯示範圍如何工作:如何比較Swift中的範圍?
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 {
不能與類型的參數調用LIS「==」(String.index以下錯誤, IntegerLiteralConvertible )」
不錯的答案。我認爲所有這個儀式都是爲了更好的Unicode支持。例如它支持像「ﷺ」這樣的瘋狂字符。我只是試過 – Mohsen 2014-10-29 23:57:32
確切的說,它就是這樣的Unicode支持。基本上它可以讓你一次跳一個字符,即使字符是多字節。 – 2014-10-30 00:05:36
@Mohsen這不是一個瘋狂的角色,而是一個阿拉伯語的句子,他說:「和平在他身上」(صلىاللهعليهوآلهوسلم)穆斯林用來表揚先知。作爲一種便利(因爲它經常被使用),這個句子作爲一個包裝的連字字形存在(和其他許多字形一樣)。希望它揭開一個謎:-) – 2015-09-09 11:53:06