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

有什么区别……

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

…和…

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

…?

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

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

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

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

 ios.write(string) => integer 

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