Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何增加Swift 4中变量的Index.String类型?_Swift_String_Indexing - Fatal编程技术网

如何增加Swift 4中变量的Index.String类型?

如何增加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

我有一个字符串,需要迭代它的字符。我还需要跟踪当前位置,因此我创建了一个String.Index类型的变量位置

但是当我想增加位置值时,我得到一个错误:“二进制运算符'+='不能应用于'String.Index'和'Int'类型的操作数”

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)
}