这段用于构建范围的代码有什么问题,该范围随后应调用substringWithRange
?
let range = Range<String.Index>(start: 0, end: 3)
Swift编译器(在Xcode 7.1.1中)用以下错误消息标记它:
无法为类型'Range&lt; Index&gt;'调用初始值设定项使用类型'(start:Int,end:Int)'
的参数列表
答案 0 :(得分:7)
您需要引用特定字符串的startIndex,然后前进:
let longString = "Supercalifragilistic"
let startIndex = longString.startIndex
let range = Range(start: startIndex, end: startIndex.advancedBy(3))
答案 1 :(得分:0)
您可以使用各种方式
let startIndex = text.startIndex
let endIndex = text.endIndex
var range1 = startIndex.advancedBy(1) ..< text.endIndex.advancedBy(-4)
var range2 = startIndex.advancedBy(0) ..< startIndex.advancedBy(5)
var range3 = startIndex ..< endIndex
let substring = text.substringWithRange(range)