"\ text"
'\ text'
在双引号字符串的输出中,我只看到一个空间。 在单引号字符串的输出中,我看到了BackSlash+Space。
那里发生了什么?这是因为'\ '
如果我将字符串更改为此,我会看到相同的输出,即单个斜线,然后是一个空间,然后是文本:
"\\ text"
'\\ text'
在两种情况下,后斜线都被逃脱了。我很困惑为什么他们在这种情况下以同样的方式工作。
有一些规则可以帮助解释单个引用的字符串和双引号字符串如何处理Ruby中的后斜线之间的根本区别?
\a
\b
\e
\f
\n
\r
\s
\t
\v
'escape using "\\"' -> escape using "\"
'That\'s right' -> That's right
\'
(Backslash Quote)被视为特殊字符。仅当您需要更多解释时,才应该使用双引号字符串。否则,单引号会提供性能提升。当您提到包括变量的名称时,Ruby永远不会做到这一点。只有变量名称被视为字符串文字。要包括变量(或任何表达式)的值,将表达式放在这样的情况下:
"#{variable}"
注意,这仅在双引号的字符串中起作用。要向一个引用的变量添加一个变量,您需要执行此操作:
'The value of X is: '+X
如果您需要认真的格式,请查看Ruby的Sprintf和printf版本。它们几乎是C函数周围的包装器,并且功能非常强大,但有点麻烦。
我将您参考“ ruby编程/字符串”,以进行差异的非常简洁而全面的概述。参考: