私は#{}
を使用して他の文字列を補間しているヘレドックを持っていますが、実際のテキストを書いているインスタンスもあります。#{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"
バックスラッシュハッシュはRubyのほうが役に立つと思っています。
>> 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
メソッドは、そのパラメータで表される正確なオブジェクトを取得するために文字列を書き込む方法を示しています。
潜在的なすべての補間を手でエスケープする必要がないheredocでは、一重引用符形式のheredocを使用できます。これは次のように機能します:
item = <<-'END'
#{code} stuff
whatever i want to say #{here}
END
私の場合、これは本当に正しい答えです。 – Rob
あなたは正しいです。 irbは "役立って"いた。 Thx – Nick