Ruby字符串前置’\’字符
当我试图在代码下面运行时,为什么ruby是pre’nds’\’字符。 它只发生’#$’
它发生在所有ruby版本中。
puts '#$' => '\#$'
要么
'#$' => '\#$'
要么
'mypassord#$123' => 'mypassord\#$123'
请在这里分享您的经验。 这是ruby问题还是其他什么?
不,这不是ruby问题。 这是你的问题。 由于#$foo
可以解释为全局变量$foo
插值,因此必须转义#
字符。 这就是为什么有反斜杠的原因。
更准确地说,不可能使用字符串"#$"
( $
是无效的全局变量)或"#$123"
( $123
是无效的全局变量)进行插值,但它会生成检查算法或插值算法在#$
之后检查序列很复杂,所以我猜这就是为什么#
即使在这种情况下也会被转义。