这似乎适用于 0.5
\n\njulia> typeof(a)\nArray{Float64,1}\n\njulia> (typeof(a).name.primary)([1 2 3])\n1\xc3\x973 Array{Int64,2}:\n1 2 3\nRun Code Online (Sandbox Code Playgroud)\n\n编辑1:
\n\n感谢 tholy 的评论和ColorTypes.jl软件包,0.6 的解决方案是:
julia> (typeof(a).name.wrapper)([1 2 3])\n1\xc3\x973 Array{Int64,2}:\n 1 2 3\nRun Code Online (Sandbox Code Playgroud)\n\n编辑2:
\n\n王凤阳让我相信,使用typename是必要的。特别是,Array{Int}.name在 0.6 上失败,因为Array{Int}现在类型为UnionAll。适用于 0.5 和 0.6 的定义是
using Compat.TypeUtils: typename\n\nif :wrapper in fieldnames(TypeName)\n parameterless_type(T::Type) = typename(T).wrapper\nelse\n parameterless_type(T::Type) = typename(T).primary\nend\n\nparameterless_type(x) = parameterless_type(typeof(x))\nRun Code Online (Sandbox Code Playgroud)\n\n如此一来,就是
\n\nparameterless_type([0.1,0.2,0.3]) == Array\nparameterless_type(Array{Int}) == Array\nRun Code Online (Sandbox Code Playgroud)\n