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

时间:2009-03-04 20:20:28

标签: ruby

......之间有什么区别?

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

...和...

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

...

2 个答案:

答案 0 :(得分:30)

put附加换行符,写入不换行。从技术上讲,如果记录分隔符末尾没有记录分隔符,则会将记录分隔符(通常是换行符)附加到输出。只输出它给出的输出。

答案 1 :(得分:11)

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

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

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

ios.write(string) => integer
  

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