当我找到这条线时,我正在浏览一些代码
if ('%{test}' % {:test => 'replaced'} == 'replaced')
# If this works, we are all good to go.
为什么'%{test}' % {:test => 'replaced'}
返回值"replaced"
? %
到底在做什么?
答案 0 :(得分:4)
那就是“插值”。哈希键"replaced"
的值:test
将插入原始字符串%{test}
中的'%{test}'
位置。
%
可以根据需要采用字符串,数组或散列。如果在这种情况下模板中只有一个插槽,最好使用%s
并传递一个字符串,如
"%s" % "replaced"
使用特定示例,它没用。
当您想要替换字符串的一部分时,它会变得很有用。 例如,如果要生成一系列字符串:
"Hello World", "Hey World", "Bye World"
你可以有一个模板字符串s = "%s World"
并将内容插入其中,如
s % "Hello"
s % "Hey"
s % "Bye"