在Ruby中,我如何生成一串重复的文本?
在ruby中快速生成一个长string的最好方法是什么? 这工作,但很慢:
str = "" length = 100000 (1..length).each {|i| str += "0"}
我也注意到,创build一个体面的长度的string,然后将其附加到现有的string达到所需的长度工作更快:
str = "" incrementor = "" length = 100000 (1..1000).each {|i| incrementor += "0"} (1..100).each {|i| str += incrementor}
还有其他build议吗?
str = "0" * 999999
另一个比较快速的select是
str = '%0999999d' % 0
虽然基准
require 'benchmark' Benchmark.bm(9) do |x| x.report('format :') { '%099999999d' % 0 } x.report('multiply:') { '0' * 99999999 } end
显示乘法运算仍然更快
user system total real format : 0.300000 0.080000 0.380000 ( 0.405345) multiply: 0.080000 0.080000 0.160000 ( 0.172504)
999999999999999999.times{ print "0" }