3

Ruby 中是否有任何单行字符串文字语法允许字符串插值但不将反斜杠解释为转义字符?

IE,

在哪里ruby_var = "foo"

我希望能够键入相当于C:\some\windows\path\#{ruby_var}\path生成字符串的内容C:\some\windows\path\foo\path,而不必转义反斜杠或求助于多行heredoc。

puts "C:\some\windows\path\#{ruby_var}\path"
puts "C:\some\windows\path\path_#{ruby_var}\path"
=> C: omewindowspath#{ruby_var}path
=> C: omewindowspathpath_foopath

puts 'C:\some\windows\path\#{ruby_var}\path'
puts 'C:\some\windows\path\path_#{ruby_var}\path'
=> C:\some\windows\path\#{ruby_var}\path
=> C:\some\windows\path\path_#{ruby_var}\path

puts %{C:\some\windows\path\#{ruby_var}\path}
puts %{C:\some\windows\path\path_#{ruby_var}\path}
=> C: omewindowspath#{ruby_var}path
=> C: omewindowspathpath_foopath

puts %q{C:\some\windows\path\#{ruby_var}\path}
puts %q{C:\some\windows\path\path_#{ruby_var}\path}
=> C:\some\windows\path\#{ruby_var}\path
=> C:\some\windows\path\path_#{ruby_var}\path
4

3 回答 3

8
ruby_var = "hello"
puts 'C:\some\windows\path\%s\path' % ruby_var
#=>C:\some\windows\path\hello\path
于 2012-06-01T20:32:42.900 回答
4
'C:\some\windows\path\%s\path' % ruby_var
#=> 'C:\some\windows\path\foo\path'
于 2012-06-01T20:33:14.527 回答
1

我不认为这是可能的。

你应该考虑使用正斜杠来让它看起来更漂亮;我相信 Windows 中的标准 ruby​​ 库不会关心你使用什么样的斜线。

还有:

File.join('C:', 'path', ruby_var)
于 2012-06-01T20:34:56.347 回答