簡體   English   中英

如何在swift3中增加String.Index?

[英]How to increase String.Index in swift3?

在swift2.3 ++中,運算符用於string.index的增加

例如。 我++

我改為swift 3代碼發生“一元運算符'++'不能應用於'@lvalue String.Index'類型的操作數(又名'@lvalue String.CharacterView.Index')”在swift 3中

我重寫了例如。 i + = 1

但是這段代碼無法解決。 請幫我。

String.Index是String.CharacterView.Index的String.CharacterView.Index 該指數本身不能增加。 相反,您可以在用於提取索引的CharacterView上使用index(after:)實例方法。

例如:

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 ),您可以使用也可直接用於String實例的index(_:, offsetBy:)實例方法:

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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM