0

下面是我的代码

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

4 回答 4

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
于 2013-08-02T07:48:22.420 回答
1

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

于 2013-08-02T07:47:45.643 回答
0

在您的行变量中,您设置 了 File.readlines("test.txt")。它的工作是用\n字符分割所有文本。lines 现在是一个由 \n 字符分割的文本数组。这就是为什么当您尝试打印它时\n字符会消失。

于 2013-08-02T07:51:23.870 回答
0

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

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

于 2013-08-02T07:48:50.150 回答