Чтобы понять это, посмотрите следующее:
julia> :([[1]
])
:([[1];])
И вы видите, что добавление новой строки переписывается как vcat
операция.
Причина этого состоит в том, чтобы позволить написать что-то вроде этого:
julia> x = [1 2
3 4]
2×2 Array{Int64,2}:
1 2
3 4
и ваш пример использует угловой синтаксис.
Обратите внимание, однако, что без лишней пустой строки vcat
не вызывается:
julia> :([[1]
])
:([[1]])
Другой пример использования, который стоит знать:
julia> [[1, 2]
[3, 4]]
4-element Array{Int64,1}:
1
2
3
4
и то же самое с переменными (в некоторых случаях может улучшить читабельность кода):
julia> a = [1,2]
2-element Array{Int64,1}:
1
2
julia> b = [3, 4]
2-element Array{Int64,1}:
3
4
julia> [a
b]
4-element Array{Int64,1}:
1
2
3
4