如何增加Swift 4中变量的Index.String类型?
我有一个字符串,需要迭代它的字符。我还需要跟踪当前位置,因此我创建了一个String.Index类型的变量位置 但是当我想增加位置值时,我得到一个错误:“二进制运算符'+='不能应用于'String.Index'和'Int'类型的操作数”如何增加Swift 4中变量的Index.String类型?,swift,string,indexing,Swift,String,Indexing,我有一个字符串,需要迭代它的字符。我还需要跟踪当前位置,因此我创建了一个String.Index类型的变量位置 但是当我想增加位置值时,我得到一个错误:“二进制运算符'+='不能应用于'String.Index'和'Int'类型的操作数” class-Lex{ 变量位置:String.Index 初始化(输入:字符串){ self.input=输入 self.position=self.input.startIndex } func advance(){ 断言(position
class-Lex{
变量位置:String.Index
初始化(输入:字符串){
self.input=输入
self.position=self.input.startIndex
}
func advance(){
断言(position
我理解这个错误,它表明我不能用整数递增Index.String类型的变量。但是我该如何得到索引呢?不要用
Int
来考虑,要用索引来考虑
func advance() {
assert(position < input.endIndex, "Cannot advance past the end!")
position = input.index(after: position)
}
func advance(){
断言(position
或
func advance(){
断言(position
Compare–虽然在您的情况下,您也可以说input.formIndex(后面是:&position)
。非常感谢您!我是Swift的新手。这对我帮助很大。
func advance() {
assert(position < input.endIndex, "Cannot advance past the end!")
position = input.index(after: position)
}
func advance() {
assert(position < input.endIndex, "Cannot advance past the end!")
input.formIndex(after: &position)
}