下面是我的代码
lines = File.readlines("test.txt")
print lines
print "\n#{lines[0]}"
结果显示
["x = 2\n", "print \"2+2=\#{x+x}\"\n"]
x = 2
为什么当我尝试打印行 [0] 时“\n”会消失?
下面是我的代码
lines = File.readlines("test.txt")
print lines
print "\n#{lines[0]}"
结果显示
["x = 2\n", "print \"2+2=\#{x+x}\"\n"]
x = 2
为什么当我尝试打印行 [0] 时“\n”会消失?
\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
\n
是换行符的转义序列,所以这就是打印的内容。\\n
如果您想打印实际的字符串,请尝试\n
。
在您的行变量中,您设置 了 File.readlines("test.txt")。它的工作是用\n字符分割所有文本。lines 现在是一个由 \n 字符分割的文本数组。这就是为什么当您尝试打印它时\n字符会消失。
\n 是表示新行的字符串的转义序列。您的字符串存储"x = 2\n"
在程序中,但您的输出程序会解析该字符串并相应地显示。\n snit 真的消失了,你的 REPL 也输出了一个新行。
编辑:如果您希望 Ruby 忽略字符串中的解析 \n 只需使用单引号而不是双引号。示例: print 'x = 2\n' 将按原样打印。