Предположим, Вы определяете новый композиционный тип в Джулию и переменную этого типа:Настраиваемое отображение составных типов в Джулии
type MyType
α::Int64
β::Vector{Float64}
γ::Float64
MyType(α::Int64, β::Vector{Float64}, γ::Float64) = new(α, β, γ)
end
mt = MyType(5, [1.2, 4.1, 2], 0.2)
Теперь, если вы находитесь в режиме REPL, вы можете просто проверить значение mt
по набрав mt
и нажав клавишу Enter:
mt
MyType(5,[1.2,4.1,2.0],0.2)
Если я хочу, чтобы настроить способ переменные MyType
отображаются, можно определить функцию и использовать его как customized_display(mt)
:
function customized_display(me::MyType)
println("MyType")
println("α:$(me.α), β:$(me.β), γ:$(me.γ)")
end
customized_display(mt)
MyType
α:5, β:[1.2,4.1,2.0], γ:0.2
Но использование другой функции для отображения значений mt
кажется излишним. Какую функцию мне нужно расширить, чтобы просто набрав mt
, отображается настроенный дисплей?
Вы можете настроить метод 'writemime' для вашего типа, например' Base.writemime (io :: IO, :: MIME "text/plain", mt :: MyType) = println (mt.α) ' – jverzani