2012-05-11 54 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'} –