ait*_*ora 4 arrays types julia
我想在 Julia 中使用一组整数集,但是当我查看每个元素的类型时,它不是一个 Set,为什么?
typeof(fill(Set{Int64}[],3)[2])
Run Code Online (Sandbox Code Playgroud)
返回
Array{Set{Int64},1}
Run Code Online (Sandbox Code Playgroud)
并不是
Set{Int64}
Run Code Online (Sandbox Code Playgroud)
例如,如果我使用原始类型,
typeof([1,2][1]) # returns Int64
Run Code Online (Sandbox Code Playgroud)
但
typeof([Set{Int64}[],Set{Int64}[]][1]) # returns Array{Set{Int64},1}
Run Code Online (Sandbox Code Playgroud)
为什么有一个包含 Set{Int64} 的数组
你写了
typeof(fill(Set{Int64}[],3)[2])
Set{Int}[]
是另一种写法Vector{Set{Int}}
。通常这种方式在使用非空数组构造时更有意义,例如Int128[1,2,3]
你可能想买Set{Int}()
一套。查看typeof(fill(Set{Int64}(), 3)[2])
但是,这将使用对同一集合的 3 个引用填充数组。因此,变异一个将使它们全部变异。很少有你想要的。
可能你真正想要的是:
[Set{Int}() for _ in 1:3]