从常量Ints创建Range <String.Index>

Dru*_*rux 1 string range swift swift2

这段代码构造一个应该在调用中服务的范围有substringWithRange什么问题?

let range = Range<String.Index>(start: 0, end: 3)
Run Code Online (Sandbox Code Playgroud)

Swift编译器(在Xcode 7.1.1中)使用此错误消息标记它:

无法使用类型'(start:Int,end:Int)'的参数列表调用类型为"Range <Index>"的初始值设定项

Tim*_*Tim 7

您需要引用特定字符串的startIndex,然后前进:

let longString = "Supercalifragilistic"
let startIndex = longString.startIndex
let range = Range(start: startIndex, end: startIndex.advancedBy(3))
Run Code Online (Sandbox Code Playgroud)

  • 替代语法:`let range = startIndex .. <startIndex.advancedBy(3)`. (2认同)