【发布时间】:2010-05-18 09:40:17
【问题描述】:
我有一组要打印的条目。
作为arr数组,我以前只是写:
puts arr
然后我需要使用DOS格式的行尾:\r\n,所以我写了:
arr.each { |e| print "#{e}\r\n" }
这可以正常工作,但我想知道是否有办法指定要使用的行尾格式,以便我可以编写如下内容:
$eol = "\r\n"
puts arr
更新 1
我知道 puts 将根据运行的平台使用正确的行尾,但我需要这个,因为我会将输出写入文件。
更新 2 正如 Mark 建议的那样,设置 $\ 很有用。无论如何,它只适用于 print。 例如,
irb(main):001:0> a = [1, 2, 3]
=> [1, 2, 3]
irb(main):002:0> $\ = "\r\n"
=> "\r\n"
irb(main):003:0> print a
123
=> nil
irb(main):004:0> puts a
1
2
3
=> nil
print 在一行上打印所有数组项,然后添加 $\,而我想要 puts 的行为:添加 $\ 在数组的每一项之后。
如果不使用 Array#each,这可能吗?
【问题讨论】:
-
不会根据平台添加回车吗?你能告诉我们你得到什么输出和你想要什么输出吗?
-
@philippe:是的,我知道,但我会将输出写入一个文本文件,我想用 CR/LF 行结尾存储该文件
标签: ruby