以下是我的代码
lines = File.readlines("test.txt")
print lines
print "\n#{lines[0]}"
结果显示
["x = 2\n", "print \"2+2=\#{x+x}\"\n"]
x = 2
当我尝试打印行[0]时,为什么“\ n”会消失?
答案 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 字符在您尝试打印时消失的原因。