在Ruby中处理字符串时所做的百分比是多少

时间:2014-02-20 13:19:17

标签: ruby string-interpolation

当我找到这条线时,我正在浏览一些代码

if ('%{test}' % {:test => 'replaced'} == 'replaced')
  # If this works, we are all good to go.

为什么'%{test}' % {:test => 'replaced'}返回值"replaced"%到底在做什么?

1 个答案:

答案 0 :(得分:4)

那就是“插值”。哈希键"replaced"的值:test将插入原始字符串%{test}中的'%{test}'位置。

%可以根据需要采用字符串,数组或散列。如果在这种情况下模板中只有一个插槽,最好使用%s并传递一个字符串,如

"%s" % "replaced"

使用特定示例,它没用。

当您想要替换字符串的一部分时,它会变得很有用。 例如,如果要生成一系列字符串:

"Hello World", "Hey World", "Bye World" 

你可以有一个模板字符串s = "%s World"并将内容插入其中,如

s % "Hello"
s % "Hey" 
s % "Bye"