typeof(foo)
给了我这种类型。但是假设我想深入挖掘。
e.g。
我可以做的不仅仅是将TheTypeName site:http://docs.julialang.org
投入Google吗?
http://docs.julialang.org/en/release-0.5/manual/types/包含一些答案:supertype
和fieldnames
但是如果有一些紧凑的一目了然的参考资料会很好。
答案 0 :(得分:7)
我刚刚为PlotRecipes添加了一个配方来可视化类型树。我把它放在笔记本上,很容易复制/粘贴到配方中,为什么不呢。在这个例子中,我是" m"密谋" LearnBase.Learnable
抽象类型的类型树:
using PlotRecipes, Learn
pyplot(size=(800,500))
theme(:dark)
plot(Learnable, method=:tree)
答案 1 :(得分:3)
对于超类型,您可以拨打supertype(FooType)
。对于所有的祖先,这应该工作:
function supertypes(t::DataType)
T = [t]
tsup = supertype(t)
if t !== tsup
prepend!(T, supertypes(tsup))
end
return T
end
对于该类型的字段名,请使用fieldnames
。
可以使用edit
函数或@edit
宏找到函数的源代码,但我无法使其适用于类型定义。
帮助:? FooType
答案 2 :(得分:3)
三个补充:
isimmutable(foo)
检查对象是否不可变isbits(typeof(foo))
检查methodswith(typeof(foo), true)
获取将接受foo作为参数的方法列表