2012-05-11 6 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

Что вы делаете, не работает, потому что вы звоните в times метод на целое число 1000. Это занимает блок и заканчивается возвратом значения 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'} –

Смежные вопросы