Я борюсь с переопределением переменной в цикле в Julia. У меня есть следующий пример:Объем переменных julia: повторное назначение в цикле в открытом выражении
infile = "test.txt"
feature = "----"
for ln in 1:3
println(feature)
feature = "+"
end
open(infile) do f
#if true
# println(feature)
# feature = "----"
println(feature)
for ln in 1:5 #eachline(f)
println("feature")
#fails here
println(feature)
# because of this line:
feature = "+"
end
end
Это не удается, если я переназначаю внутри цикла. Я вижу, что проблема с областью переменных, и потому, что задействованы вложенные области. reference говорит, что петли вводят «мягкую» область. Я не могу узнать из руководства, к какому виду относится open
, но, похоже, он закручивает вещи вверх, как будто я заменяю open
if true
, все идет гладко.
Правильно ли я понимаю, что open
вводит «жесткую» область и что это причина, по которой повторное назначение задним числом делает переменную неопределенной?