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:我没有定义
答案 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
定义为局部变量,您可以在嵌套的局部范围内对其进行更新。