actually, the 1 goes with the outermost Array, the meaning of this type is:
“Array of 1 dimension, and element of this array is of type Array{Int64, N}”,
the where N means N is not specified, such that it is possible to push vector or even a higher dimensional tensor into a:
julia> push!(a, rand(Bool, 2,2,2))
2-element Vector{Array{Int64, N} where N}:
julia> a[1]
2×2 Matrix{Int64}:
julia> a[2]
2×2×2 Array{Int64, 3}:
Maybe this will also help you understand:
julia> [[1 2;3 4]]
1-element Vector{Matrix{Int64}}:
julia> Matrix{Int64} == Array{Int64,2}
true
The reason why your original example didn’t return a
Array{Matrix{Int64}, 1}
is because you specifically wanted the flexibility in N:
julia> Array{Int}
Array{Int64, N} where N