12

所以我正在关注这个 Ruby 教程:Learn Ruby the Hard Way。

在练习 16(上面链接)中,您编写了一个将行写入文件的脚本。相关代码为:

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

有人能准确地告诉我这是为什么吗?单引号字符串是否只是忽略转义字符,如\nor \t

4

1 回答 1

17

是的,单引号字符串不处理 ASCII 转义码,也不进行字符串插值。

name = 'Joe'
greeting = 'Hello, #{name}' # this won't produce "Hello, Joe" 
于 2012-10-31T13:33:25.843 回答