Ruby中是否有任何单行字符串文字语法允许字符串插值但不将反斜杠解释为转义字符?
即,
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
答案 0 :(得分:8)
ruby_var = "hello"
puts 'C:\some\windows\path\%s\path' % ruby_var
#=>C:\some\windows\path\hello\path
答案 1 :(得分:4)
'C:\some\windows\path\%s\path' % ruby_var
#=> 'C:\some\windows\path\foo\path'
答案 2 :(得分:1)
我认为不可能。
你应该考虑使用正斜杠来使它看起来更漂亮;我相信Windows中的标准ruby库不关心你使用什么样的斜杠。
还有:
File.join('C:', 'path', ruby_var)