I/O 与网络
通用 I/O
Base.stdout
Base.stderr
Base.stdin
Base.open
Base.IOBuffer
Base.take!(::Base.GenericIOBuffer)
Base.fdio
Base.flush
Base.close
Base.write
Base.read
Base.read!
Base.readbytes!
Base.unsafe_read
Base.unsafe_write
Base.position
Base.seek
Base.seekstart
Base.seekend
Base.skip
Base.mark
Base.unmark
Base.reset
Base.ismarked
Base.eof
Base.isreadonly
Base.iswritable
Base.isreadable
Base.isopen
Base.Grisu.print_shortest
Base.fd
Base.redirect_stdout
Base.redirect_stdout(::Function, ::Any)
Base.redirect_stderr
Base.redirect_stderr(::Function, ::Any)
Base.redirect_stdin
Base.redirect_stdin(::Function, ::Any)
Base.readchomp
Base.truncate
Base.skipchars
Base.countlines
Base.PipeBuffer
Base.readavailable
Base.IOContext
Base.IOContext(::IO, ::Pair)
Base.IOContext(::IO, ::IOContext)
文本 I/O
Base.show(::Any)
Base.summary
Base.print
Base.println
Base.printstyled
Base.sprint
Base.showerror
Base.dump
Meta.@dump
Base.readline
Base.readuntil
Base.readlines
Base.eachline
Base.displaysize
多媒体 I/O
就像文本输出用 print
实现,用户自定义类型可以通过重载 show
来指定其文本化表示, Julia 提供了一个应用于富多媒体输出的标准化机制 (例如图片、格式化文本、甚至音频和视频),由以下三部分组成:
函数
display(x)
来请求一个 Julia 对象x
最丰富的多媒体展示,并以纯文本作为后备模式。重载
show
允许指定用户自定义类型的任意多媒体表现形式(以标准MIME类型为键值)。支持多媒体显示后端可以被注册,通过子类化通用的
AbstractDisplay
类型 并通过pushdisplay
将其压进显示后端的栈中。
基础 Julia 运行环境只提供纯文本显示, 但是更富的显示可以通过加载外部模块或者使用图形化 Julia 环境 (比如基于 IPython 的 IJulia notebook)来实现。
Base.Multimedia.display
Base.Multimedia.redisplay
Base.Multimedia.displayable
Base.show(::Any, ::Any, ::Any)
Base.Multimedia.showable
Base.repr(::MIME, ::Any)
如上面提到的,用户可以定义新的显示后端。 例如,可以在窗口显示 PNG 图片的模块可以在 Julia 中注册这个能力, 以便为有 PNG 表示的类型调用 display(x)
时可以在模块窗口中自动显示图片。
为了定义新的显示后端,应该首先创建抽象类AbstractDisplay
的子类型D
。
然后,对于每个可以显示在 D
上的MIME类型 (mime
string), 用户应该定义一个函数 display(d::D, ::MIME"mime", x) = ...
这里的 x
表示为 MIME 类型, 经常在 show(io, mime, x)
或 repr(io, mime, x)
中被调用。 如果 x
不能被表示为 MIME 类型则 MethodError
会被抛出; 这在用户调用 show
或 repr
的时候是会自动执行的。
最后,用户应该定义一个函数 display(d::D, x)
来查询 showable(mime, x)
以获得 D
支持的 mime
类型并把它显示为"最好"的一个; 如果没有为 x
找到支持的 MIME 类型,就应该抛出 MethodError
。 类似地,一些子类型可能希望重写 [redisplay(d::D, ...)
](http://127.0.0.5/@ref Base.Multimedia.redisplay)。 (同样,用户也应该通过 import Base.display
去添加新的方法去 display
。) 这些函数的返回值取决于实现(因为在某些情况下,返回某种类型的显示“句柄”可能很有用)。 D
的显示功能可以直接调用,但它们也可以从 display(x)
自动调用, 只需在显示后端栈中添加一个新显示即可:
Base.Multimedia.pushdisplay
Base.Multimedia.popdisplay
Base.Multimedia.TextDisplay
Base.Multimedia.istextmime
网络 I/O
Base.bytesavailable
Base.ntoh
Base.hton
Base.ltoh
Base.htol
Base.ENDIAN_BOM
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论