Ruby在某个地方的跨平台EOL是否有常量?

问题描述 投票:19回答:2

我需要格式化以换行符结尾的字符串。我只需要添加一个“ \ n”,但是我也希望它在Windows上也可以使用。许多语言都有一个常数,可以根据平台提供适当的CR / LF / CRLF序列,但是我似乎在Ruby中找不到任何东西。是否存在?

ruby
2个回答
27
投票

Ruby有四个(!)

p $/
p $-0
require 'English'
p $RS
p $INPUT_RECORD_SEPARATOR

使用IO#puts(= File#puts)将解决适当的EOL,无需手动设置。


0
投票

只要您以文本模式(默认)使用文件,Ruby本身就将操作系统的行尾字符序列转换为Ruby中的"\n"

  • 以文本模式从文件中读取时,所有行尾都将显示为"\n"
  • 以文本模式写入文件时,所有换行符"\n"将被写为操作系统的行尾字符序列。

因此,出于所有实际目的,在文本模式下处理文件时,可以将"\n"用作“跨平台EOL常数”。

来源:How to make your Ruby code work on Windows PCs, section "Get your file modes right"

© www.soinside.com 2019 - 2024. All rights reserved.