Как увеличить строку.Индекс в swift3?
в swift2.3 ++ оператор используется для строки.увеличение индекса
например. i++
Я изменил на swift 3, что код произойдет " Унарный оператор ' ++ ' не может быть применен к операнду типа '@lvalue String.Index ' (aka '@lvalue String.CharacterView.Index') " в swift 3
я перепишу например. i + = 1
но этот код не может решить. Пожалуйста, помогите мне.
2 ответов
String.Index
- это typealias для 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
}
или, учитывая, что у вас есть индекс (например,str.startIndex
), вы можете использовать index(_:, offsetBy:)
метод экземпляра доступен также непосредственно для String
случаях:
let str = "foobar"
let startIndex = str.startIndex
let nextIndex = str.index(startIndex, offsetBy: 1)
print(str[startIndex...nextIndex]) // fo
String.Index
нет ++
, +=
, или любой вид оператора (за исключением сравнений, например <
, >
, ==
), определенной для него. Он имеет другие методы, определенные для перемещения индекса. Чтобы увеличить позицию индекса 1, код будет выглядеть так:string.index(i, offsetBy: 1)
let string = "Some string"
var i = string.startIndex
i = string.index(i, offsetBy: 1)