如何在Julia中检查结构/可变结构的属性
我有一个定义如下的结构:如何在Julia中检查结构/可变结构的属性,julia,Julia,我有一个定义如下的结构: julia> struct test test1::Int64 test2::Float64 end 我希望能够看到结构中属性的名称以及类型。最直接的方法是什么?我知道我能做到: julia> t = test(1,1.0) test(1, 1.0) julia> fieldnames(typeof(t)) (:test1, :test2) 但我希望同时查看属性名称和类型。最直接的方法是使
julia> struct test
test1::Int64
test2::Float64
end
我希望能够看到结构中属性的名称以及类型。最直接的方法是什么?我知道我能做到:
julia> t = test(1,1.0)
test(1, 1.0)
julia> fieldnames(typeof(t))
(:test1, :test2)
但我希望同时查看属性名称和类型。最直接的方法是使用
dump
方法:
帮助?>转储
搜索:转储
转储(x;最大深度=8)
显示值表示的每个部分。深度
输出在maxdepth处被截断
因此,在这种情况下,它将显示:
julia> dump(t)
test
test1: Int64 1
test2: Float64 1.0
有关更多详细信息,请参见此处:使用字段类型(typeof(t))
关于另一个答案,请注意,dump
总是输出整个数据结构,这对于具有复杂类型的字段是不好的。尝试在具有Dict
字段的结构上执行dump
,以了解我的观点(或在控制台中尝试)dump(Dict())
julia> DataFrame(name=[fieldnames(typeof(t))...], type=[fieldtypes(typeof(t))...])
2×2 DataFrame
│ Row │ name │ type │
│ │ Symbol │ DataType │
├─────┼────────┼──────────┤
│ 1 │ test1 │ Int64 │
│ 2 │ test2 │ Float64 │