Ошибка UndefVarError в области видимости `` @ time```

Я также думал, что лучше использовать только фигурные скобки, когда это действительно необходимо. Но не более того, основная причина, когда у вас много кода, делает ее более читаемой, и вы можете быстрее анализировать код, когда у вас есть согласованный стиль фиксации.

Еще одна веская причина всегда используя фигурные скобки, помимо того, что кто-то добавляет второй оператор в if, может произойти что-то подобное:

if(a)
   if(b)
     c();
else
   d();

Вы заметили, что предложение else на самом деле относится к «if (b)»? Вы, вероятно, сделали это, но можете ли вы кому-либо быть знакомы с этой информацией?

Итак, если только для согласованности и потому, что вы никогда не знаете, какие неожиданные вещи могут произойти, когда кто-то еще ( это всегда другие глупые) меняет код, я всегда ставил фигурные скобки, потому что он делает исходный код более читабельным, быстрее разбираться в мозгу. Только для самых простых операторов if, таких как if, если делегирование сделано или похоже на коммутатор, где вы знаете, что предложение никогда не будет расширено, я бы не оставил фигурные скобки.

0
задан user3055163 29 March 2019 в 14:27
поделиться

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.

0
ответ дан Korsbo 29 March 2019 в 14:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: