为什么这个转义字符实际上不适用于Ruby?

时间:2010-02-03 19:56:39

标签: ruby file-io escaping

代码:

file.write 'objectclass: groupOfUniqueNames\n'

奇怪的是,\ n实际上正在打印......这里有什么问题?

3 个答案:

答案 0 :(得分:7)

Ruby中的单引号字符串比双引号字符串更“文字”;变量未被计算,大多数转义字符都不起作用,\\\'除外,分别包括文字反斜杠和单引号。

双引号是你想要的:

file.write "objectclass: groupOfUniqueNames\n"

答案 1 :(得分:4)

单个带引号的字符串中允许的两个转义序列是\'(对于单引号)和\\(对于单个反斜杠)。如果要使用其他转义序列,例如\n(对于换行符),则必须使用双引号字符串。

所以,这将有效:

file.write "objectclass: groupOfUniqueNames\n"

虽然我个人只是在这里使用puts,但已添加换行符:

file.puts 'objectclass: groupOfUniqueNames'

答案 2 :(得分:3)

您正在使用单引号。单引号中允许的唯一转义序列为\\ \\' '。使用双引号,\n将按预期工作。