2016-11-03 20 views
5

In swift2.3 ++ string.indexの演算子の使用が増加します。swift3でString.Indexを増やす方法は?

たとえば、 私は(別名 『@lvalue String.CharacterView.Index』)String.Index @lvalue ' " 単項演算子起こるが『++』型のオペランドに適用することができないコード3迅速に変更

++を"迅速に3

私は を書き換えます。 i + = 1

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

答えて

4

String.IndexString.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 
4

String.Index」はdoesnの+++=、または任意の種類の演算子(たとえば、<,>,==など)を持つそれのためにined。インデックスを移動するために定義された他のメソッドがあります。インデックス1の位置を上げるには、コードは次のようになります。string.index(i, offsetBy: 1)

let string = "Some string" 
var i = string.startIndex 
i = string.index(i, offsetBy: 1) 
関連する問題