本文簡要介紹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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。