他の文字列を補間するために使用しているヒアドキュメントがありますが、補間せずに実際のテキストをヒアドキュメントに#{}
書きたい場合があります。#{some_ruby_stuff}
#{ をエスケープする方法はありますか?
「\」を試してみましたが、うまくいきません。をエスケープしてい#{}
ますが、「\」も含まれています。
>> <<-END
#{RAILS_ENV} \#{RAILS_ENV}
END
=> " development \#{RAILS_ENV}\n"
他の文字列を補間するために使用しているヒアドキュメントがありますが、補間せずに実際のテキストをヒアドキュメントに#{}
書きたい場合があります。#{some_ruby_stuff}
#{ をエスケープする方法はありますか?
「\」を試してみましたが、うまくいきません。をエスケープしてい#{}
ますが、「\」も含まれています。
>> <<-END
#{RAILS_ENV} \#{RAILS_ENV}
END
=> " development \#{RAILS_ENV}\n"
潜在的な補間をすべて手動でエスケープする必要のないヒアドキュメントの場合、一重引用符スタイルのヒアドキュメントを使用できます。それはこのように動作します:
item = <<-'END'
#{code} stuff
whatever i want to say #{here}
END
バックスラッシュハッシュは、Rubyがirbのみの方法で役立つだけだと思います。
>> a,b = 1,2 #=> [1, 2]
>> s = "#{a} \#{b}" #=> "1 \#{b}"
>> puts s #=> 1 #{b}
>> s.size #=> 6
ですから、あなたはすでに正しい答えを持っていると思います。
'
代わりに引用符を使用できます。それらに囲まれているものは補間されていません。
エスケープによるあなたの解決策#
も私にとってはうまくいきます。確かにRubyインタープリターショー
=> "\#{anything}"
しかし
> puts "\#{anything}"
#{anything}
=> nil
文字列には必要なものが正確に含まれていますp
。メソッドのみがエスケープ文字で表示されます。実際、p
メソッドは、パラメーターによって正確に表されるオブジェクトを取得するために文字列を書き込む方法を示しています。