2013-01-01 3 views

Antwort

10

Wenn die Basisquelle jede zuverlässige Referenz, hat base/version.jl nur print() und show definiert (und show hängt von print)

function print(io::IO, v::VersionNumber) 
    print(io, v.major) 
    print(io, '.') 
    print(io, v.minor) 
    print(io, '.') 
    print(io, v.patch) 
    if !isempty(v.prerelease) 
     print(io, '-') 
     print_joined(io, v.prerelease,'.') 
    end 
    if !isempty(v.build) 
     print(io, '+') 
     print_joined(io, v.build,'.') 
    end 
end 
show(io, v::VersionNumber) = print(io, "v\"", v, "\"") 

An dieser Stelle scheint es an Ihnen ist, wenn Sie sich verlassen wollen eine gemeinsame Funktion; implementieren Sie einfach alle diese Funktionen auf diese Weise. Beispiel:

type Foo 
end 
import Base.string 
function string(x::Foo) 
    return "a Foo()" 
end 
import Base.print 
print(io::IO, x::Foo) = print(io, string(x)) 
import Base.show 
show(io::IO, x::Foo) = print(io, "This is ", x) 

-

julia> f = Foo() 
This is a Foo()