web-dev-qa-db-ja.com

Swift3でString.Indexを増やす方法は?

Swift2.3 ++演算子でstring.indexの増加に使用

例えば。 i ++

Swift 3というコードが発生するように変更しました "単項演算子 '++'は、タイプ '@lvalue String.Index'(別名 '@lvalue String.CharacterView.Index'のオペランドには適用できません。 ) "Swift 3

例えば書き直します。 i + = 1

しかし、このコードは解決できません。私を助けてください。

16
San San

_String.Index__String.CharacterView.Index_ のタイプエイリアスです。インデックス自体は増加できません。むしろ、インデックスの抽出に使用したCharacterViewindex(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
_
16
dfri

_String.Index_には、_++_、_+=_、または任意の種類の演算子(比較以外、たとえば、_<_、_>_、_==_はありません) )定義されています。インデックスを移動するために定義された他のメソッドがあります。インデックス1の位置を増やすには、コードは次のようになります。string.index(i, offsetBy: 1)

_let string = "Some string"
var i = string.startIndex
i = string.index(i, offsetBy: 1)
_
6
keithbhunter