루비 반복자
간단히 말하면 iteration(iterate)은 같은 일을 반복해서 하는 것을 말하므로, iterator(iterator)는 같은 일을 여러 번 반복하는 데 사용됩니다.
Iterator는 Collections에서 지원되는 메서드입니다. 데이터 멤버 집합을 저장하는 개체를 컬렉션이라고 합니다. Ruby에서는 배열과 해시를 세트라고 부를 수 있습니다.
Iterator는 컬렉션의 모든 요소를 하나씩 반환합니다. 여기서는 each 및 collect라는 두 가지 유형의 반복자에 대해 설명합니다.
Ruby each Iterator
각 Iterator는 배열 또는 해시의 모든 요소를 반환합니다.
구문
collection.each do |variable| code end
은 collection의 각 요소에 대해 code를 실행합니다. 여기서 컬렉션은 배열 또는 해시일 수 있습니다.
Example
#!/usr/bin/ruby ary = [1,2,3,4,5] ary.each do |i| puts i end
위 예제의 출력 결과는 다음과 같습니다.
1 2 3 4 5
each 반복자는 항상 블록과 연결됩니다. 배열의 각 값을 하나씩 블록에 반환합니다. 그 값은 변수 i에 저장된 후 화면에 표시됩니다.
Ruby collect Iterator
collect Iterator는 컬렉션의 모든 요소를 반환합니다.
Syntax
collection = collection.collect
collect 메소드가 항상 블록과 연관될 필요는 없습니다. collect 메소드는 배열이든 해시이든 전체 컬렉션을 반환합니다.
Example
#!/usr/bin/ruby a = [1,2,3,4,5] b = Array.new b = a.collect{ |x|x } puts b
위 예제의 출력 결과는 다음과 같습니다.
1 2 3 4 5
참고: collect 메서드는 배열 간에 복사하는 올바른 방법이 아닙니다. 한 배열을 다른 배열로 복사하는 clone이라는 또 다른 방법이 있습니다.
새로운 배열을 얻기 위해 각 값에 대해 일부 작업을 수행하려는 경우 일반적으로 Collect 메서드를 사용합니다. 예를 들어, 다음 코드는 a의 각 값의 10배인 배열을 생성합니다.
#!/usr/bin/ruby a = [1,2,3,4,5] b = a.collect{|x| 10*x} puts b
위 예제의 출력 결과는 다음과 같습니다.
10 20 30 40 50