Итак, я следую этому руководству Ruby: Изучите Ruby Hard Way.
В упражнении 16 (см. выше) вы пишете script, который записывает строки в файл. Соответствующий код:
print "line 1: "; line1 = STDIN.gets.chomp()
print "line 2: "; line2 = STDIN.gets.chomp()
print "line 3: "; line3 = STDIN.gets.chomp()
puts "I'm going to write these to the file."
target.write(line1)
target.write("\n")
target.write(line2)
target.write("\n")
target.write(line3)
target.write("\n")
Однако, будучи ленивой задницей, которой я являюсь, я изначально набрал пример, используя одинарные кавычки в последних шести строках, вместо двойных кавычек, которые посоветует вам использовать.
Это повлияло на файл. Когда я использовал одинарные кавычки, файл выглядел так:
this is line 1\nthis is line 2\nthis is line 3
После переключения этих котировок в двойные кавычки файл выглядел так, как ожидалось:
this is line 1
this is line 2
this is line 3
Может ли кто-нибудь сказать мне, почему это так? Строки с одиночными кавычками просто игнорируют escape-символы, такие как \n
или \t
?