在Julia中初始化空向量的两种等效方法

tpa*_*ker 4 arrays initialization julia

在Julia中,表达式Vector{Type}()Type[]初始化Types 的空向量是完全相同的吗?这两种语法是首选吗?

Mat*_* B. 8

是的,它们实际上完全相同:

julia> @code_typed Vector{Any}()
CodeInfo(:(begin
        return $(Expr(:foreigncall, :(:jl_alloc_array_1d), Array{Any,1}, svec(Any, Int64), Array{Any,1}, 0, 0, 0))
    end))=>Array{Any,1}

julia> @code_typed Any[]
CodeInfo(:(begin
        return $(Expr(:foreigncall, :(:jl_alloc_array_1d), Array{Any,1}, svec(Any, Int64), Array{Any,1}, 0, 0, 0))
    end))=>Array{Any,1}
Run Code Online (Sandbox Code Playgroud)

Type[]语法其实就像所有其他的x[]语法-它扩展到getindex(Type).在那里你会看到它是根据Array构造函数定义的.这只是一个方便的速记.我不知道任何一个比另一个更喜欢的风格指南.