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)

Reply via email to