2009-03-04 38 views
16

...Rubyのputメソッドとwriteメソッドの違いは何ですか?

File.open('abc', 'w') { |f| f.puts 'abcde' } 

...と...

File.open('abc', 'w') { |f| f.write 'abcde' } 

...の違いは何ですか?

+1

@RichB(別名「OCD編集者」)小文字の「and」は技術的にはより正確です。新しい文章の始まりではなく、つながりです。 – MarkusQ

+2

@ MarkusQ:リッチBは単なる自動トローリングボットです。明らかに彼の文法システムをアップグレードする必要があります。 – Pesto

+0

@ MarkusQ:私は同意しない。あなたが違って感じる場合は、それを編集してください。 – GEOCHET

答えて

29

putsは改行を追加しますが、書き込みは行いません。技術的には、putsはレコード区切り(通常は改行)を最後に付加しない場合は出力に追加します。それが与えられたものだけを出力します。

11

このような場合は、常にRuby Coreのドキュメントから始まります。この場合はIOクラスです。

ios.puts(obj, ...) => nil 

IO#printと同様にIOSに与えられたオブジェクトを書き込み。改行シーケンスで終わっていないレコードセパレータ(通常は改行)を書き込みます。配列引数で呼び出された場合、各要素を新しい行に書き込みます。引数なしで呼び出された場合は、単一のレコード区切りを出力します。

ios.write(string) => integer 

IOSに与えられた文字列を書き込みます。ストリームは書き込み用に開かれている必要があります。引数が文字列でない場合は、to_sを使用して文字列に変換されます。書き込まれたバイト数を返します。

関連する問題