为什么“\ n”在我尝试打印出数组元素时会消失?

时间:2013-08-02 07:44:51

标签: ruby

以下是我的代码

lines = File.readlines("test.txt")
print lines
print "\n#{lines[0]}"

结果显示

["x = 2\n", "print \"2+2=\#{x+x}\"\n"]
x = 2

当我尝试打印行[0]时,为什么“\ n”会消失?

4 个答案:

答案 0 :(得分:4)

\n消失,因为print将其打印为换行符,这就是您的结果显示的原因:

["x = 2\n", "print \"2+2=\#{x+x}\"\n"]
x = 2

而不是:

["x = 2\n", "print \"2+2=\#{x+x}\"\n"]x = 2

如果您希望在产品中将换行符保留为\n,请使用inspect

lines = File.readlines("test.txt")
print lines.inspect
print "\n#{lines[0]}".inspect

答案 1 :(得分:1)

\n是换行符的转义序列,这就是打印的内容。如果要打印实际字符串\\n,请尝试\n

答案 2 :(得分:0)

\ n是字符串的转义序列,表示新行。您的字符串在程序中存储为"x = 2\n",但您的输出程序将解析该字符串并相应地显示。 \ n snit真的消失了,你的REPL也输出了新的一行。

编辑:如果你想让Ruby忽略你的字符串中的parsin \ n,只需使用单引号而不是双引号。示例:print'x = 2 \ n'将按原样打印。

答案 3 :(得分:0)

在你设置的line变量中 的 File.readlines( “test.txt的”)即可。 它的工作是通过 \ n 字符拆分所有文本。 lines现在是由\ n字符分割的文本数组。这就是为什么 \ n 字符在您尝试打印时消失的原因。