You need to overwrite show:
Base.show(io::IO, ::Thomas) = println(io, "Hey, Thomas here!")


Am Sonntag, 1. März 2015 14:03:23 UTC+1 schrieb Thomas Magnusson:
>
> 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