2013-08-23 2 views
1

При попытке использовать методы итерации я продолжаю получать ошибки. Это метод initialize, который создает массив случайного размера, заполненный случайными целыми числами. Любая помощь приветствуется.Ошибка итерации Ruby

def initialize 
    i = 0 
    @random_size = rand(3-12) 
    @new_arr = Array.new(@random_size) 
    loop do 
    @new_arr[i] = rand(1..50) 
    break if i >= @random_size 
    i += 1 
    end 
end 


Edit оригинальный вопрос выглядел, как показано ниже. Обратите внимание на rand(3-12).

enter image description here

ответ

3

В Ruby (и любой другой язык, который имеет некоторые функциональные возможности, по этому вопросу) вы обычно не писать явные указатели, что это слишком важно (и многословным). Функциональный подход будет выглядеть примерно так:

def initialize 
    @random_size = rand(3..12) 
    @new_arr = @random_size.times.map { rand(1..50) } 
end 
+0

* Неплохо *, но блоки - это большая вещь, чтобы объяснить, что новые рубины. – Plasmarob

+1

Plasmarob: Любой, кто собирается изучать Ruby, должен изучать блоки, иначе зачем беспокоиться? есть сотни учебников и книг, это не так сложно. – tokland

+0

Ярмарка. Но, по крайней мере, назовите это так, чтобы они могли его найти. – Plasmarob

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