Techioz Blog

ブロックありとブロックなしの File.open

概要

ブロックについて質問がありますが、2 つのコードは同じ意味ですか?

コード1

File::open('yozloy.txt','w') do |f|
  f << 'Some contains'
end

コード2

newFile = File::open('yozloy.txt','w')
newFile << 'Some contains'

解決策

いいえ、同じ意味ではありません。最初の例では、ブロックが処理された後、ファイルは自動的に閉じられます。 2 番目の例では、newFile.close を手動で呼び出すのはユーザーの責任です。