gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 08:01:03 28 4
gpt4 key购买 nike

为了在 Julia 中创建可打印的新类型,应该定义哪些方法?我认为应该只定义 show,然后它将引发其他函数的行为,例如:

  • 打印
  • 字符串
  • repl_show
  • 显示紧凑
  • 展示

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

最佳答案

如果 Base 源是任何可靠的引用,则 base/version.jl 仅定义了 print()show(并且 >显示取决于打印)

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, "\"")

现在看来,是否要依赖一个通用函数就取决于你了;您只需以这种方式实现所有此类功能即可。示例:

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

关于printing - 为 Julia 中的新类型定义类似 print() 的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14115088/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com