#julia
#julia
Вопрос:
У меня есть следующий фрагмент кода:
@time begin
results = nothing
for i in 1:3
if results == nothing
results = DataFrame(A=1, B=2)
else
results = vcat(results, DataFrame(A=1, B=2))
end
end
end
Без @time begin/end
части код выполняется нормально.
Однако внутри @time begin/end
части я получаю UndefVarError: results not defined
.
Кто-нибудь знает, что происходит?
Комментарии:
1. Вы используете записную книжку Jupyter?
2. Да, это так…….
3. Это ошибка в SoftGlobalScope.jl. Сообщите об этом здесь: github.com/stevengj/SoftGlobalScope.jl/issues/new
Ответ №1:
Мне кажется, что у вас ошибка определения области. Ваше присвоение results
происходит в области, к которой не имеет доступа остальная часть блока. Вы можете исправить это, указав, что вы выполняете назначение в своей локальной области:
@time begin
local results = nothing
for i in 1:3
if results == nothing
results = DataFrame(A=1, B=2)
else
results = vcat(results, DataFrame(A=1, B=2))
end
end
end
Обратите внимание, что вы получили бы ту же ошибку только с begin ... end
блоком, без @time
.