如何以编程方式确定Julia中的非参数化类型名?
有时,访问类型的非参数化版本会有所帮助。例如,如果我有一些如何以编程方式确定Julia中的非参数化类型名?,julia,Julia,有时,访问类型的非参数化版本会有所帮助。例如,如果我有一些foo::foo{A,B},那么最好有类似basetype(foo::foo{args…})=foo的东西。朱莉娅提供了这样的东西吗 您可以将Base.typename与参数化类型一起使用。它以Core.TypeName的形式返回类型名,您可以使用其包装器字段提取类型 julia> Base.typename(typeof([1])).wrapper Array julia> Base.typename(Array{Int6
foo::foo{A,B}
,那么最好有类似basetype(foo::foo{args…})=foo
的东西。朱莉娅提供了这样的东西吗 您可以将Base.typename
与参数化类型一起使用。它以Core.TypeName
的形式返回类型名,您可以使用其包装器
字段提取类型
julia> Base.typename(typeof([1])).wrapper
Array
julia> Base.typename(Array{Int64, 1}).wrapper
Array
您还可以使用T.name.wrapper
直接检索此信息,Julia可能会对其进行更好的优化,尽管这听起来不是一个好主意。见相关问题