小编Dom*_*ice的帖子

为puts设置行尾字符

我有一系列我想要打印的条目.

作为改编的阵列,我只是用来写:

puts arr
Run Code Online (Sandbox Code Playgroud)

然后我需要使用DOS格式的行尾:\ r \n,所以我写道:

arr.each { |e| print "#{e}\r\n" }
Run Code Online (Sandbox Code Playgroud)

这工作正常,但我想知道是否有办法指定使用哪种行尾格式,以便我可以编写如下内容:

$eol = "\r\n"
puts arr
Run Code Online (Sandbox Code Playgroud)

更新1

我知道puts将使用正确的行结尾,具体取决于它运行的平台,但我需要这个,因为我会将输出写入文件.

更新2 正如Mark建议的那样,设置$ \是有用的.无论如何它只适用于打印.例如,

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
Run Code Online (Sandbox Code Playgroud)

print在一行上打印所有数组项,然后添加$ \,而我想要puts的行为:在数组的每个项之后添加$ \.
没有使用Array#,这有可能吗?

ruby

3
推荐指数
1
解决办法
6270
查看次数

标签 统计

ruby ×1