Ruby 中的“\n”(换行符)和“\r”(回车符)有啥区别?

Posted

技术标签:

【中文标题】Ruby 中的“\\n”(换行符)和“\\r”(回车符)有啥区别?【英文标题】:What is the difference between "\n" (newline) and "\r" (carriage return) in Ruby?Ruby 中的“\n”(换行符)和“\r”(回车符)有什么区别? 【发布时间】:2019-03-07 21:55:06 【问题描述】:
y = "Ruby\riscool"
x = "Ruby\niscool"

if x == y
  puts x
  puts y
else
  print 'Not equal!'
end

换行符和回车符都给出相同的输出。但是,上面的代码是错误的,并触发了 else 语句。我不明白如何获得相同的输出,但是两者都不相等?有人可以举个例子并解释两个空白字符之间的区别吗?谢谢!

【问题讨论】:

“都给出相同的输出。” - 不,they don't. 看看这个link 我认为它在红宝石中是一样的 另见this answer。 在大多数终端中\r 将光标移动到行首而不前进行,因此您可以重写文本。 \n 移动到开头前进该行。 只是为了澄清,如果我在脚本中而不是在 shell 中使用它们,两者之间有区别吗?谢谢你的解释! 【参考方案1】:

\n 和 \r 在输出方面没有太大区别,尽管它们执行相同的操作,但它们都用于打印新行它们是不同的,例如,如果我们得到一个矩阵,则可以在输入的情况下观察到输入如下:

1 2 3 (\n)

4 5 6 (\n)

7 8 9 (\r)

为了给新行作为输入,我们将在输入结束回车出现时使用 \n(enter),即 (\r)。

【讨论】:

以上是关于Ruby 中的“\n”(换行符)和“\r”(回车符)有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

换行符

Java中,回车符是\r 还是 \n 呢,是不是在myeclipse 和dos 中的用法不以样呢?

Java 中的空格符、换行符等怎么表示

java中如何表示一个回车符

WindowsUnixMac不同操作系统的换行问题-剖析回车符 和换行符

Java字符代码中干掉制表符回车符和换行符