Printing 为Julia中的新类型定义类似print()的函数

Printing 为Julia中的新类型定义类似print()的函数,printing,julia,Printing,Julia,为了使一个新类型可以在Julia中打印,应该定义哪些方法?我认为应该只定义show,这将导致其他函数的行为,如: 印刷品 串 回复秀 showcomact showall 哪些方法需要为新类型定义?如果基本源是任何可靠的参考,Base/version.jl只定义了print()和show(并且show取决于print) 在这一点上,如果你想依靠一个共同的功能,这似乎取决于你; 您只需以这种方式实现所有这些功能。例如: type Foo end import Base.string funct

为了使一个新类型可以在Julia中打印,应该定义哪些方法?我认为应该只定义
show
,这将导致其他函数的行为,如:

  • 印刷品
  • 回复秀
  • showcomact
  • showall

哪些方法需要为新类型定义?

如果基本源是任何可靠的参考,
Base/version.jl
只定义了
print()
show
(并且
show
取决于
print

在这一点上,如果你想依靠一个共同的功能,这似乎取决于你; 您只需以这种方式实现所有这些功能。例如:

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)
-


这个答案过时了?我们能使它现代化吗?
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()