3

文字列補間を許可するがバックスラッシュをエスケープ文字として解釈しない Ruby の単一行文字列リテラル構文はありますか?

すなわち、

どこruby_var = "foo"

バックスラッシュをエスケープしたり、複数行のヒアドキュメントに頼ったりすることなく、C:\some\windows\path\#{ruby_var}\path結果として文字列を入力できるようにしたいと考えています。C:\some\windows\path\foo\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 '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 に答える