问题描述
我想在Julia中使用一组整数集,但是当我查看每个元素的类型时,它不是一个Set,为什么?
typeof(fill(Set{Int64}[],3)[2])
返回
Array{Set{Int64},1}
不是
Set{Int64}
例如,如果我使用原始类型,
typeof([1,2][1]) # returns Int64
但是
typeof([Set{Int64}[],Set{Int64}[]][1]) # returns Array{Set{Int64},1}
为什么有一个数组包含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]