tpa*_*ker 4 arrays initialization julia
在Julia中,表达式Vector{Type}()和Type[]初始化Types 的空向量是完全相同的吗?这两种语法是首选吗?
是的,它们实际上完全相同:
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构造函数定义的.这只是一个方便的速记.我不知道任何一个比另一个更喜欢的风格指南.