在Python中,你可以這樣做:如何在Ruby中模擬Python的named printf參數?
print "Hi! I'm %(name)s, and I'm %(age)d years old." % ({"name":"Brian","age":30})
什麼是最接近的,最簡單的紅寶石成語來複制這種行爲? (否的Monkeypatching 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}"
約定是非常相似的,但立即評估使其不那麼靈活。
請不要downvote建議#{var}
技術的答案,因爲它們來自此編輯之前。 (隨機想法內核:如果問題作者將它們標記爲「過時」,可能應該從投票中得到答案...)
不適用於Ruby 1.9。 – 2013-01-14 02:49:12