如何在Julia中以编程方式确定未参数化的类型名称?

时间:2019-05-03 21:51:41

标签: julia

有时访问类型的非参数化版本会很有帮助。例如。如果我有foo::Foo{A,B},最好有basetype(foo::Foo{args...}) = Foo之类的东西。朱莉娅会提供这样的东西吗?

1 个答案:

答案 0 :(得分:5)

您可以将Base.typename与参数类型一起使用。它以Core.TypeName的形式返回类型名称,您可以使用其wrapper字段提取类型。

julia> Base.typename(typeof([1])).wrapper
Array

julia> Base.typename(Array{Int64, 1}).wrapper
Array

您也可以直接使用T.name.wrapper检索此信息,而 可能最好由Julia进行优化,尽管这听起来不是一个好主意。请参阅相关问题here