Ruby字符串前置’\’字符

当我试图在代码下面运行时,为什么ruby是pre’nds’\’字符。 它只发生’#$’

它发生在所有ruby版本中。

puts '#$' => '\#$' 

要么

 '#$' => '\#$' 

要么

 'mypassord#$123' => 'mypassord\#$123' 

请在这里分享您的经验。 这是ruby问题还是其他什么?

不,这不是ruby问题。 这是你的问题。 由于#$foo可以解释为全局变量$foo插值,因此必须转义#字符。 这就是为什么有反斜杠的原因。

更准确地说,不可能使用字符串"#$"$是无效的全局变量)或"#$123"$123是无效的全局变量)进行插值,但它会生成检查算法或插值算法在#$之后检查序列很复杂,所以我猜这就是为什么#即使在这种情况下也会被转义。