Kir*_*ar. 4 arrays types julia
一方面,如果我有x=[1,2,3]
,则无法添加"foo"
到x
,但是如果我以开头x=[1,2,3,"foo"]
,则联合类型为Any
,则可以将所需的内容添加到数组中。说Julia数组是齐次的是否正确?因为我可以创建的数组Any
。
默认情况下,Julia将限制给定数组为尽可能特定的元素类型(eltype)。但是,julia具有一种特殊的语法,可以使用您喜欢的任何Eltype创建数组。所以,要创建eltype一个数组T
,你只写T[x, y, z]
代替[x, y, z]
。对于您的示例,这将是
julia> v = Any[1,2,3]
p3-element Array{Any,1}:
1
2
3
julia> push!(v, "foo")
4-element Array{Any,1}:
1
2
3
"foo"
Run Code Online (Sandbox Code Playgroud)
出现这种情况的原因是,如果我们可以将数组限制为特定的具体类型,则可以进行一些主要的性能优化。如果您有一个带有eltype的数组Any
,则不能将内容密集地打包在内存中。