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 中的用法不以样呢?