【问题标题】:How to define how type appears on the Julia REPL如何定义类型在 Julia REPL 上的显示方式
【发布时间】:2015-11-03 17:50:20
【问题描述】:

我不清楚应该如何在 Julia REPL 上定义类型的外观。有很多类似的发声功能,包括:显示、显示、打印、writemime等。

【问题讨论】:

    标签: julia read-eval-print-loop


    【解决方案1】:

    您需要为类型重载 Base.show()。

    julia> import Base: show
    
    julia> type Foo
               x
               y
               z
           end
    
    julia> Base.show(io::IO, f::Foo) = println(io, "Foo: x=$(f.x), y=$(f.y), z=$(f.z)")
    show (generic function with 98 methods)
    
    julia> Foo("Hello ", "World", "!")
    Foo: x=Hello, y=World, z=!
    

    【讨论】:

    • 请注意,如果您以这种方式重载方法:Base.show,那么您甚至不需要执行import Base: show
    • 您几乎总是希望为类型中的所有字段指定具体类型:julia> type Foo x::Int64; y::Float64; z::UTF8String end
    • 完成此操作后,我的类型正确显示为字典中的值。 (我不打扰发布代码,因为它依赖于通过 SLURM 托管在远程计算机上的 SharedArray)。如果我直接调用“julia> x”是行不通的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多