我在那里我使用#{}插值一些其他字符串定界符文本,但有这样的情况:我也想写的实际文本#{some_ruby_stuff}在我的定界符,而不会被插入。是有办法逃脱#{

我试过“\”,但没有运气。虽然脱#{},它也包括“\”:

>> <<-END
 #{RAILS_ENV} \#{RAILS_ENV} 
END
=> " development \#{RAILS_ENV}\n"
有帮助吗?

解决方案

我觉得反斜杠哈希只是红宝石在一些IRB-唯一的办法是有帮助的。

>> a,b = 1,2        #=> [1, 2]
>> s = "#{a} \#{b}" #=> "1 \#{b}"
>> puts s           #=> 1 #{b}
>> s.size           #=> 6

所以,我认为你已经有了正确的答案。

其他提示

有关定界符,而无需手工逃避所有可能的插值,可以使用单引号的风格,定界符。它的工作原理是这样的:

item = <<-'END'
  #{code} stuff
  whatever i want to say #{here}
END

您可以使用'引号代替。任何封闭在它们不被内插。

您与逃逸#解决方案也为我工作。事实上Ruby解释节目

=> "\#{anything}"

> puts "\#{anything}"
#{anything}
=> nil

您的字符串包含你想要什么,只p法转义字符显示它。其实,p方法告诉您,串应该怎么写得到确切目的在于通过它的参数来表示。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top