Ruby的put和write方法有什么区别?

Eth*_*han 18 ruby

有什么区别......

File.open('abc', 'w') { |f| f.puts 'abcde' }
Run Code Online (Sandbox Code Playgroud)

...和...

File.open('abc', 'w') { |f| f.write 'abcde' }
Run Code Online (Sandbox Code Playgroud)

...?

Pes*_*sto 32

puts附加换行符,写入不换行.从技术上讲,如果最后没有一个记录分隔符,则会将记录分隔符(通常是换行符)附加到输出.只输出给出的输出.


Mic*_*cot 11

在这种情况下,我总是从Ruby Core文档开始,在本例中是IO类.

ios.puts(obj, ...) => nil
Run Code Online (Sandbox Code Playgroud)

将给定的对象写入ios,如同IO#print.在没有以换行符结束的任何内容之后写入记录分隔符(通常是换行符).如果使用数组参数调用,则将每个元素写入新行.如果不带参数调用,则输出单个记录分隔符.

ios.write(string) => integer
Run Code Online (Sandbox Code Playgroud)

将给定的字符串写入ios.必须打开流才能写入.如果参数不是字符串,则将使用转换为字符串to_s.返回写入的字节数.