Чтобы обобщить то, что сказали все остальные: блоки позволяют преобразовать список операторов (syntacti c "фраз", которые не имеют значений, т. Е. Не могут быть назначены) в один выражение («фраза», представляющая значения, и может быть назначена ).
Например, если вы этого не сделаете, вы можете написать
x = begin
s = 0
for i = 1:10
s += i^2
end
s
end
, чтобы присвоить x
результату операции цикла. (С ограничением, что последний оператор в последовательности должен фактически быть выражением - иначе у вас не будет никакого значения для выражения.)
Допустимый вариант использования этого - сгенерированный код. Например, вы могли бы
x = @somthing bla blub
в
x = begin
(stuff involving bla and blub)
end
прозрачно для пользователя, тогда как @something
может свободно генерировать любые языковые конструкции.
Или если Вы хотите написать анонимную функцию с более длинным телом (и не использовать форму function
):
f = x -> begin
...
end