大佬教程收集整理的这篇文章主要介绍了在Ruby中如何模拟Python的命名printf参数?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
print "Hi! I'm %(Name)s,and I'm %(agE)d years old." % ({"name":"Brian","age":30})
什么是最接近,最简单的Ruby成语来复制这个行为? (请不要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的“嗨!我#{name}”约定是非常相似的,但立即评估使它不那么通用.
请不要拒绝提出#{var}技术的答案,因为它们来自此编辑之前. (随机想法内核:如果一个问题作者将它们标记为“过时的”,答案应该被保护不被投票?
printf "1: %<key1>s 2: %<key2>s\n",{:key1 => "value1",:key2 => "value2"}
要么
data = {:key1 => "value1",:key2 => "value2"} printf "1: %<key1>s 2: %<key2>s\n",data
或者(这需要ruby 1.9,其他的例子我不太清楚)
data = {key1: "value1",key2: "value2"} printf "1: %<key1>s 2: %<key2>s\n",data
打印
1: value1 2: value2
重要限制:哈希的使用密钥(我的示例中的数据)必须是符号.
以上例子的一个例子:
printf需要一个格式字符串和可选参数.但是也有一个String#% – 方法.
以下四个电话具有相同的结果:
printf "1: %<key1>s 2: %<key2>s\n",:key2 => "value2"} printf "1: %<key1>s 2: %<key2>s\n" % {:key1 => "value1",:key2 => "value2"} print "1: %<key1>s 2: %<key2>s\n" % {:key1 => "value1",:key2 => "value2"} puts "1: %<key1>s 2: %<key2>s" % {:key1 => "value1",:key2 => "value2"}
第二个版本首先使用String#% – 方法,并将结果发送到printf.
以上是大佬教程为你收集整理的在Ruby中如何模拟Python的命名printf参数?全部内容,希望文章能够帮你解决在Ruby中如何模拟Python的命名printf参数?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。