Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Julia 检查对象是数组还是Dict_Julia - Fatal编程技术网

Julia 检查对象是数组还是Dict

Julia 检查对象是数组还是Dict,julia,Julia,我想检查var是数组还是Dict typeof(var) == Dict typeof(var) == Array 但是它不起作用,因为typeof太精确了:Dict{ascistring,Int64}。 最好的方法是什么? 如果你需要一个“不精确”的检查,你可能想考虑使用这个函数,比如: julia> d = Dict([("A", 1), ("B", 2)]) julia> isa(d, Dict) true julia> isa(d, Array) false ju

我想检查var是数组还是Dict

typeof(var) == Dict

typeof(var) == Array
但是它不起作用,因为typeof太精确了:Dict{ascistring,Int64}。 最好的方法是什么?

如果你需要一个“不精确”的检查,你可能想考虑使用这个函数,比如:

julia> d = Dict([("A", 1), ("B", 2)])
julia> isa(d, Dict)
true
julia> isa(d, Array)
false

julia> a = rand(1,2,3);
julia> isa(a, Dict)
false
julia> isa(a, Array)
true
julia> if isa(d, Dict)
         println("I'm a dictionary!")
       end
I'm a dictionary!

julia> if isa(a, Array)
         println("I'm an array!")
       end
I'm an array!
然后可以在中使用
isa()
函数,如下所示:

julia> d = Dict([("A", 1), ("B", 2)])
julia> isa(d, Dict)
true
julia> isa(d, Array)
false

julia> a = rand(1,2,3);
julia> isa(a, Dict)
false
julia> isa(a, Array)
true
julia> if isa(d, Dict)
         println("I'm a dictionary!")
       end
I'm a dictionary!

julia> if isa(a, Array)
         println("I'm an array!")
       end
I'm an array!


注意:使用Julia 0.4.3进行测试

而不是检查特定的具体类型,例如数组或Dict,您可以通过检查抽象类型做得更好,并获得很大的灵活性

例如:

julia> x = [1,2,3]
3-element Array{Int64,1}:
 1
 2
 3
julia> d = Dict(:a=>1,:b=>2)
Dict(:a=>1,:b=>2)
julia> isa(d, Associative)
true
julia> isa(x, AbstractArray)
true
Julia中有许多不同类型的数组,因此检查
Array
可能限制太多,例如,您将无法获得稀疏矩阵。
还有许多不同类型的关联结构,
Dict
objectdict
SortedDict
orderedict

,所以您只想找到一个泛型(Dict或“Array”)?没错!“Dict”或“Array”答案很好,但您也可以将问题中的
=
替换为
是的,我的观点是,如果要使用
isa