本文简要介绍ruby语言中 Tempfile.open
的用法。
用法
open(*args, **kw) { |tempfile| ... }
创建一个新的 Tempfile
。
不推荐使用此方法,主要是为了向后兼容而存在。请改用 Tempfile.create
,这样可以避免委托成本,不依赖终结器,并且在给定块时也会取消链接文件。
如果您需要通过终结器取消链接 Tempfile
并且您无法明确知道在程序中的哪个位置可以安全地取消链接 Tempfile
,则 Tempfile.open
仍然适用。
如果没有给出块,这是 Tempfile.new
的同义词。
如果给定一个块,则将构造一个 Tempfile
对象,并以 Tempfile
对象作为参数运行该块。 Tempfile
对象将在块终止后自动关闭。但是,该文件不会被取消链接,需要使用 Tempfile#close!
或 Tempfile#unlink
手动取消链接。终结器将尝试取消链接,但不应依赖它,因为它可以使文件在磁盘上的保存时间比预期的要长得多。例如,在 CRuby 上,由于保守的堆栈扫描和未使用内存中留下的引用,终结器可能会延迟。
该调用返回块的值。
在任何情况下,所有参数(*args
)都将传递给 Tempfile.new
。
Tempfile.open('foo', '/home/temp') do |f|
# ... do something with f ...
end
# Equivalent:
f = Tempfile.open('foo', '/home/temp')
begin
# ... do something with f ...
ensure
f.close
end
相关用法
- Ruby Tempfile.unlink用法及代码示例
- Ruby Tempfile.new用法及代码示例
- Ruby Tempfile.create用法及代码示例
- Ruby Tempfile类用法及代码示例
- Ruby Template.match用法及代码示例
- Ruby Time tv_sec用法及代码示例
- Ruby Time usec用法及代码示例
- Ruby TCPServer.accept用法及代码示例
- Ruby Time yday()用法及代码示例
- Ruby Time succ()用法及代码示例
- Ruby Time mon()用法及代码示例
- Ruby Time.gmtime用法及代码示例
- Ruby Time iso8601用法及代码示例
- Ruby Time.at用法及代码示例
- Ruby Thread.kill用法及代码示例
- Ruby Time.utc_offset用法及代码示例
- Ruby Time.isdst用法及代码示例
- Ruby TracePoint.defined_class用法及代码示例
- Ruby Time.time + numeric用法及代码示例
- Ruby Thread.pending_interrupt?用法及代码示例
- Ruby Time wednesday?用法及代码示例
- Ruby Time.wednesday?用法及代码示例
- Ruby Thread kill()用法及代码示例
- Ruby Time asctime()用法及代码示例
- Ruby TypeError类用法及代码示例
注:本文由纯净天空筛选整理自ruby-lang.org大神的英文原创作品 Tempfile.open。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。