2013-08-23 2 views
1

반복 방법을 사용할 때 오류가 계속 발생합니다. 이것은 임의의 정수로 채워진 임의 크기의 배열을 만드는 initialize 메서드입니다. 어떤 도움을 주셔서 감사합니다.루비 반복 오류

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 


편집 는 원래 질문은 다음과 같습니다 보았다. rand(3-12)에 주목하십시오.

enter image description here

답변

3
루비에서

(그리고 그 문제에 관해서, 일부 기능을 기능을 가지고 모든 언어)는 일반적으로 명시 적으로 인덱스를 작성하지, 그건 너무 필수적 (및 자세한 정보)입니다. 기능적 접근법은 다음과 같이 보일 것입니다 :

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

* 나쁘지는 않지만 블록은 루비를 처음 접한 사람들에게 설명 할 큰 부분입니다. – Plasmarob

+1

Plasmarob : 루비를 배우려는 사람은 누구나 블록을 배워야합니다. 그렇지 않으면 왜 귀찮을까요? 수백 개의 자습서와 책이 나와 있습니다. 그리 어렵지 않습니다. – tokland

+0

공정한. 그러나 적어도 그것을 하나라고 부르면 그것을 볼 수 있습니다. – Plasmarob