有时访问类型的非参数化版本会很有帮助。例如,如果我有一些foo::Foo{A,B}
东西的话,那就很好basetype(foo::Foo{args...}) = Foo
。朱莉娅会提供这样的东西吗?
您可以使用Base.typename
参数类型。它以的形式返回类型名称,Core.TypeName
您可以使用其wrapper
字段提取类型。
julia> Base.typename(typeof([1])).wrapper
Array
julia> Base.typename(Array{Int64, 1}).wrapper
Array
Run Code Online (Sandbox Code Playgroud)
您也可以直接检索此信息,Julia 可能会用T.name.wrapper
它更好地对其进行优化,尽管这听起来似乎不是一个好主意。请参阅此处的相关问题。