Julia 如何在while循环中使用nextind

Julia 如何在while循环中使用nextind,julia,Julia,nextind在while循环中不起作用 mezclado = "AαBβ" tamaño = sizeof(mezclado) i = 1 while i ≤ tamaño print(mezclado[i], " ") i = nextind(mezclado, i) end 它可以在julia>命令行中一步一步地执行,但在while循环中没有 mezclado = "AαBβ" tamaño = sizeof(mezclado) i = 1 while i ≤ tamañ

nextind在while循环中不起作用

mezclado = "AαBβ"
tamaño = sizeof(mezclado)
i = 1
while i ≤ tamaño
    print(mezclado[i], " ")
    i = nextind(mezclado, i)
end
它可以在julia>命令行中一步一步地执行,但在while循环中没有

mezclado = "AαBβ"
tamaño = sizeof(mezclado)
i = 1
while i ≤ tamaño
    print(mezclado[i], " ")
    i = nextind(mezclado, i)
end
我希望是αBβ 我获取未定义的变量错误:我未定义写入

i = 1
while i ≤ tamaño
    print(mezclado[i], " ")
    global i = nextind(mezclado, i)
end

得到你想要的


(该问题与
nextind
无关,但与全局范围内的Julia作用域规则有关,请参阅以获取详细解释)。简而言之:
i
中,而
循环是一个局部变量,除非您声明它为
global
(第一种方法)。第二种方法(使用
let
)创建一个封闭的局部作用域,它将
i
定义为局部变量,您可以在嵌套的局部作用域中对其进行更新。

我已将其标记为重复,因为这是一个常见问题,并且已多次得到解答,但为了完整起见,我还添加了一个示例,说明如何修复代码。