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

\nprint改行として出力されるため、表示されなくなります。これが、結果が次のように表示される理由です。

["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

lines 変数に File.readlines("test.txt")を設定しました。その作業は、すべてのテキストを\n文字で分割することです。lines は、\n 文字で分割されたテキストの配列になりました。そのため、印刷しようとすると\n文字が消えます。

于 2013-08-02T07:51:23.870 に答える
0

\n は、改行を表す文字列のエスケープ シーケンスです。文字列はプログラムのように保存さ"x = 2\n"れますが、出力プログラムはその文字列を解析し、それに応じて表示します。\n 本当に消えてしまいました。REPL も新しい行を出力しました。

編集: Ruby に文字列の解析記号 \n を無視させたい場合は、二重引用符の代わりに単一引用符を使用してください。例: print 'x = 2\n' はそのまま印刷します。

于 2013-08-02T07:48:50.150 に答える