Ale*_*lec 9 printing types julia
说我有
struct MyStruct{T,U}
a::T
b::U
end
Run Code Online (Sandbox Code Playgroud)
我想定义一个自定义show,以消除完整类型中的大量噪音。
例如,如果我创建以下内容:
z = MyStruct((a=1,b=2),rand(5))
Run Code Online (Sandbox Code Playgroud)
然后typeof显示的内容比我想要的多得多:
julia> typeof(z)
MyStruct{NamedTuple{(:a, :b), Tuple{Int64, Int64}}, Vector{Float64}}
Run Code Online (Sandbox Code Playgroud)
如何以编程方式将MyStructfrom放入z字符串中?
Nil*_*dat 11
这里和这里关于 Discourse 的一些冗长的讨论,至少提供了这两个解决方案(第二个解决方案概括了第一个解决方案):
julia> Base.typename(typeof(z)).wrapper
MyStruct
julia> name(::Type{T}) where {T} = (isempty(T.parameters) ? T : T.name.wrapper)
name (generic function with 1 method)
julia> name(typeof(z))
MyStruct
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
678 次 |
| 最近记录: |