在 Python 中,您可以这样做:
print "Hi! I'm %(name)s, and I'm %(age)d years old." % ({"name":"Brian","age":30})
复制这种行为的最接近、最简单的 Ruby 习语是什么?(请不要对 String 类进行猴子修补。)
编辑:这样做的真正好处之一是您可以将预处理的字符串存储在变量中并将其用作“模板”,如下所示:
template = "Hi! I'm %(name)s, and I'm %(age)d years old."
def greet(template,name,age):
print template % ({"name":name,"age":age})
这显然是一个微不足道的例子,但是能够存储这样一个字符串以供以后使用有很多实用性。Ruby 的"Hi! I'm #{name}"
约定大致相似,但直接评估使其不那么通用。
请不要对建议该#{var}
技术的答案投反对票,因为它们来自此编辑之前。(随机想法内核:如果问题作者将答案标记为“过时”,也许应该保护答案不被投票......?)