用于初始化Vector{Type}()
的空向量的表达式Type[]
和Type
在Julia中完全等效吗?是否首选语法?
答案 0 :(得分: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}
Type[]
语法实际上与所有其他x[]
语法一样 - 它扩展为getindex(Type)
。 there you'll see它是根据Array
构造函数定义的。这只是一个方便的速记。
我不知道任何一个比另一个更喜欢的风格指南。