Я совершенно новый для Джулии, и я изучаю перенос кода Python на Джулию. Этот код использует перегрузку __repr __() для отображения типов вырезок. Я понимаю, что Julia предоставляет метод () для этой функции. Но я не могу понять.julia интерполяция собственного типа со строкой()
julia> type Thomas
t::Integer
end
julia> function Base.string(t::Thomas)
"---> $(t.t) <---"
end
julia> r = Thomas(8);
С этими определениями я ожидал мой строку (:: Томас) функцию, которая вызывается всякий раз, когда значение типа Томас необходимо преобразовать в строку. В одном случае, он работает, как ожидалось:
julia> println("$r")
---> 8 <---
Но для большинства случаев это не так:
julia> println(r)
Thomas(8)
julia> println(" $r")
Thomas(8)
julia> println("r = $r")
r = Thomas(8)
julia> repr(r)
"Thomas(8)"
Что я не так? Есть ли какая-то другая функция, которую я должен определить для моего нового настраиваемого типа?
Я бегу Julia 0.4.0-dev. (код выше был вставлен из REPL версии 0.4.0-dev + 3607 (2015-02-26 07:41 UTC), Commit bef6bf3 *, x86_64-linux-gnu)
Спасибо Винсент. Кажется, есть несколько функций: 'show()', 'print()', 'display()' и т. Д. Каково отношение? И где они должны использоваться. Должны ли некоторые из них производить анализируемый результат? Я не нашел никакой полезной информации по этой теме в документации по документации Юлии (в противном случае очень хорошо). Любые указатели оценили! – filijokus