假设我在 Julia 中编写了一个函数,它接受Dict{K,V}
作为参数,然后创建类型的数组Array{K,1}
and Array{V,1}
。我怎样才能提取类型K
and V
来自 Dict 对象,以便我可以使用它们来创建数组?
斯文和约翰的答案都很正确。如果您不想像 John 的代码那样引入方法类型参数,您可以使用eltype
功能:
julia> d = ["foo"=>1, "bar"=>2]
["foo"=>1,"bar"=>2]
julia> eltype(d)
(ASCIIString,Int64)
julia> eltype(d)[1]
ASCIIString (constructor with 1 method)
julia> eltype(d)[2]
Int64
julia> eltype(keys(d))
ASCIIString (constructor with 1 method)
julia> eltype(values(d))
Int64
正如你所看到的,有几种方法可以剥这只猫的皮,但我认为eltype(keys(d))
and eltype(values(d))
是迄今为止最清晰的,因为keys
and values
函数只是返回不可变的视图对象,编译器足够聪明,实际上并没有创建任何对象。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)