Swift2.3 ++演算子でstring.indexの増加に使用
例えば。 i ++
Swift 3というコードが発生するように変更しました "単項演算子 '++'は、タイプ '@lvalue String.Index'(別名 '@lvalue String.CharacterView.Index'のオペランドには適用できません。 ) "Swift 3
例えば書き直します。 i + = 1
しかし、このコードは解決できません。私を助けてください。
_String.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)
_