we can define a good representation of a new type by overloading 
`Base.show(io::IO, x::Foo)`:

```

import Base: show


type Foo
    x
    y
end

function show(io::IO, x::Foo)
    println("x ---> $(x.x)")
    println("y ---> $(x.y)")
end

julia> Foo(1,2)
x ---> 1
y ---> 2

``` 

but I don't know why julia will show `Foo` 3 times when running 
`[Foo(1,2)]`:

```

julia> [Foo(1,2)]
1-element Array{Foo,1}:
x ---> 1
y ---> 2
 x ---> 1
y ---> 2
x ---> 1
y ---> 2

```

BTW, the whitespace in the beginning of 3rd line is so wired...
 

Reply via email to