如何在while循环中使用nextind

时间:2019-07-28 17:06:45

标签: julia

nextind在while循环内不起作用

它可以在julia>命令行中逐步执行,但不会在while循环内

mezclado = "AαBβ"
tamaño = sizeof(mezclado)
i = 1
while i ≤ tamaño
    print(mezclado[i], " ")
    i = nextind(mezclado, i)
end

我希望AαBβ 我得到了UndefVarError:我没有定义

1 个答案:

答案 0 :(得分:1)

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

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

得到想要的东西。

(该问题与nextind无关,但与全球范围内的Julia范围规则有关,请参见https://docs.julialang.org/en/latest/manual/variables-and-scoping/#Local-Scope-1以获取详细说明)。简而言之:i循环内的while是局部变量,除非您将其声明为global(第一种方法)。第二种方法(使用let)创建了一个封闭的局部范围,该范围将i定义为局部变量,您可以在嵌套的局部范围内对其进行更新。