如何在Julia中的对象的构造函数中声明一个简约类型的变量?例如,请考虑以下事项:
type DetermineType
foobar::Base.Prod2{LinSpace{Float64},LinSpace{Float64}}
end
function DetermineType(;foo = linspace(0, 1, 10),
bar = linspace(0, 1, 10))
foobar = Base.product(foo, bar)
return DetermineType(foobar)
end
foobar
的声明是Base.Prod2{LinSpace{Float64},LinSpace{Float64}}
。我决定使用这种类型,因为它是typeof(foobar)
的输出。虽然这个声明还不太长,但Base.product
超过两个Linspace
对象很快变得非常冗长。在浏览了Julia关于Types的文档后,我想我正在寻找supertype
foobar
。但是,我不知道如何获得它。有人可以帮忙吗?
答案 0 :(得分:1)
supertype
访问超类型。在这种情况下,supertype(typeof(foobar))
是Base.Iterators.AbstractProdIterator
。 foobar::Base.Iterators.Prod2
。