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