#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)
но я хотел бы видеть имя и тип атрибута вместе.
Ответ №1:
Используйте fieldtypes(typeof(t))
julia> DataFrame(name=[fieldnames(typeof(t))...], type=[fieldtypes(typeof(t))...])
2×2 DataFrame
│ Row │ name │ type │
│ │ Symbol │ DataType │
├─────┼────────┼──────────┤
│ 1 │ test1 │ Int64 │
│ 2 │ test2 │ Float64 │
Что касается другого ответа, обратите внимание, что dump
всегда выводится вся структура данных, что не подходит для полей, имеющих сложные типы. Попробуйте выполнить dump
в структуре, в которой есть Dict
поле, чтобы выяснить мою точку зрения (или просто попробуйте в консоли) dump(Dict())
.
Ответ №2:
Самый простой способ сделать это — использовать dump
метод:
справка?> поиск дампа: дамп
дамп(x; maxdepth=8)
Показать каждую часть представления значения. Глубина вывода усекается на уровне maxdepth.
Итак, в этом случае это покажет:
julia> dump(t)
test
test1: Int64 1
test2: Float64 1.0
Смотрите Здесь для получения более подробной информации: https://docs.julialang.org/en/v1/base/io-network/#Base.dump