I'm quite new to Julia and I'm looking into porting some Python code to
Julia. This code uses __repr__() overloading to display custom types. I
understand that Julia provides the *string*() method for this
functionality. But I can't figure it out.
julia> type Thomas
t::Integer
end
julia> function Base.string(t::Thomas)
"---> $(t.t) <---"
end
julia> r = Thomas(8);
With these definitions I expected my *string(::Thomas)* function to be
called whenever a value of type*Thomas* needed to be converted to a string.
In one case, it works as expected:
julia> println("$r")
---> 8 <---
But, for the most cases it does not:
julia> println(r)
Thomas(8)
julia> println(" $r")
Thomas(8)
julia> println("r = $r")
r = Thomas(8)
julia> repr(r)
"Thomas(8)"
What did I get wrong ? Is there some other function I should define for my
new custom type ?
I am running Julia 0.4.0-dev. (the code above was pasted from the REPL of
Version 0.4.0-dev+3607 (2015-02-26 07:41 UTC), Commit bef6bf3*,
x86_64-linux-gnu)