2013-01-01 11 views

risposta

10

Se la fonte di base è un qualsiasi riferimento affidabile, base/version.jl ha solo print() e show definito (e show dipende 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, "\"") 

Sembra a questo punto sta a voi se volete fare affidamento su una funzione comune; hai appena implementato tutte queste funzioni in questo modo. Esempio:

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() 
Problemi correlati