......之间有什么区别?
File.open('abc', 'w') { |f| f.puts 'abcde' }
...和...
File.open('abc', 'w') { |f| f.write 'abcde' }
...
答案 0 :(得分:30)
put附加换行符,写入不换行。从技术上讲,如果记录分隔符末尾没有记录分隔符,则会将记录分隔符(通常是换行符)附加到输出。只输出它给出的输出。
答案 1 :(得分:11)
在这种情况下,我总是从Ruby Core文档开始,在本例中是IO类。
ios.puts(obj, ...) => nil
与
IO#print
一样将给定对象写入ios。在没有以换行符结束的任何内容之后写入记录分隔符(通常是换行符)。如果使用数组参数调用,则将每个元素写入新行。如果不带参数调用,则输出单个记录分隔符。
ios.write(string) => integer
将给定的字符串写入ios。必须打开流才能写入。如果参数不是字符串,则使用
to_s
将其转换为字符串。返回写入的字节数。