首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Julia中为新类型定义print()-like函数

在Julia中为新类型定义print()-like函数
EN

Stack Overflow用户
提问于 2013-01-01 23:07:45
回答 1查看 1.5K关注 0票数 8

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

  • 打印
  • 字符串
  • repl_show
  • 展示性
  • 秀场

需要为新类型定义这些方法中的哪一个?

EN

回答 1

Stack Overflow用户

发布于 2013-01-11 21:01:24

如果基本源是任何可靠的引用,那么base/version.jl只定义了print()show ( show依赖于print)

代码语言:javascript
复制
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, "\"")

在这一点上,如果您想要依赖一个公共函数,就应该由您来决定;您只需这样实现所有这些函数。示例:

代码语言:javascript
复制
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)

-

代码语言:javascript
复制
julia> f = Foo()
This is a Foo()
票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14115088

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档