Я также думал, что лучше использовать только фигурные скобки, когда это действительно необходимо. Но не более того, основная причина, когда у вас много кода, делает ее более читаемой, и вы можете быстрее анализировать код, когда у вас есть согласованный стиль фиксации.
Еще одна веская причина всегда используя фигурные скобки, помимо того, что кто-то добавляет второй оператор в if, может произойти что-то подобное:
if(a)
if(b)
c();
else
d();
Вы заметили, что предложение else на самом деле относится к «if (b)»? Вы, вероятно, сделали это, но можете ли вы кому-либо быть знакомы с этой информацией?
Итак, если только для согласованности и потому, что вы никогда не знаете, какие неожиданные вещи могут произойти, когда кто-то еще ( это всегда другие глупые) меняет код, я всегда ставил фигурные скобки, потому что он делает исходный код более читабельным, быстрее разбираться в мозгу. Только для самых простых операторов if, таких как if, если делегирование сделано или похоже на коммутатор, где вы знаете, что предложение никогда не будет расширено, я бы не оставил фигурные скобки.
Мне кажется, что у вас ошибка определения объема. Ваше назначение 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
.