2012-05-11 31 views
0

我正在使用Ruby on Rails 3.2.2,我想用最简单的方法构建一个长字符串。我想利用times方法,但使用下面的代码不返回,我在寻找:如何建立一个长串?

10000.times{ "Foo bar" } 
# => 10000 

我想它返回"Foo bar Foo bar Foo bar Foo bar Foo bar Foo bar Foo bar Foo bar Foo bar Foo bar ..."

我该如何做到这一点?

注意:我想在我的rspec文件中使用上述代码进行测试。

回答

7

试试这个方法:

"Long string"*1000 
0

你在做什么,因为你呼吁整数1000的times方法它采取了块不工作,并最终返回值1000

最简单的解决方法是对字符串调用乘法方法/运算符。

所以像@gmile建议做这样的:

"Foo bar " * 10000 

但如果你真的想用10000.times{ },你可以这样做:

long_string = '' 
10000.times{ |s| s << 'Foo bar ' } 
puts long_string # "Foo bar Foo bar Foo bar ..." 
+0

〜gmile具有最佳的解决方案,但比这个解决方案更好的是10000.inject(''){| str,ignore | str <<'Foo bar'} –