如何逃生#{从字符串插值
-
19-09-2019 - |
题
我在那里我使用#{}
插值一些其他字符串定界符文本,但有这样的情况:我也想写的实际文本#{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
方法告诉您,串应该怎么写得到确切目的在于通过它的参数来表示。
不隶属于 StackOverflow