如何在swift3中增加String.Index?

San*_*San 11 iphone operators ios swift swift3

在swift2.3 ++中,运算符用于string.index的增加

例如.我++

我改为swift 3代码发生"一元运算符'++'不能应用于'@lvalue String.Index'类型的操作数(又名'@lvalue String.CharacterView.Index')"在swift 3中

我重写了例如.i + = 1

但是这段代码无法解决.请帮我.

dfr*_*fri 13

String.Index是一个类型的String.CharacterView.Index.该指数本身不能增加.相反,您可以使用用于提取索引的index(after:)实例方法CharacterView.

例如:

let str = "foobar"
let chars = str.characters

if let bIndex = chars.index(of: "b") {
    let nextIndex = chars.index(after: bIndex)
    print(str[bIndex...nextIndex]) // ba
}
Run Code Online (Sandbox Code Playgroud)

或者,假设您有一个索引(例如str.startIndex),您可以index(_:, offsetBy:)直接使用实例方法String实例:

let str = "foobar"
let startIndex = str.startIndex
let nextIndex = str.index(startIndex, offsetBy: 1)
print(str[startIndex...nextIndex]) // fo
Run Code Online (Sandbox Code Playgroud)


kei*_*ter 5

String.Index不具有++,+=或任何类型的操作者(除比较其他,例如<,>,==)中定义它.它还有其他定义用于移动索引的方法.要增加索引1的位置,代码将如下所示: string.index(i, offsetBy: 1)

let string = "Some string"
var i = string.startIndex
i = string.index(i, offsetBy: 1)
Run Code Online (Sandbox Code Playgroud)