English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
간단히 말해서: 이터네이트(iterate)는 같은 일을 반복하는 것을 의미하며, 이터레이터(iterator)는 여러 번 반복할 것을 의미합니다.
이터레이터는집합지원하는 메서드가 있습니다. 데이터 멤버 집합을 저장하는 객체는 집합이라고 불립니다. Ruby에서는 배열(Array)과 해시(Hash)를 집합으로 불릴 수 있습니다.
이터레이터는 집합의 모든 요소를 하나씩 반환합니다. 여기서는 두 가지 이터레이터를 논의할 것입니다each 그리고 collect。
each 이터레이터는 배열이나 해시의 모든 요소를 반환합니다.
collection.each do |variable| code end
위치에집합중에서 각 요소에 대해 실행합니다 code여기서, 집합은 배열이나 해시일 수 있습니다.
#!/usr/bin/ruby ary = [1,2,3,4,5] ary.each do |i| puts i end
위의 예제 실행 결과는 다음과 같습니다:
1 2 3 4 5
each 이터레이터는 항상 블록과 연결되어 있습니다. 그는 블록에 배열의 각 값을 하나씩 반환합니다. 값은 변수에 저장됩니다 i 중국어를 입력하면, 그 다음 화면에 표시됩니다.
collect 이터레이터는 집합의 모든 요소를 반환합니다.
collection = collection.collect
collect 메서드는 항상 블록과 연결되지 않아야 합니다.collect 메서드는 전체 집합을 반환하며, 이는 배열이나 해시를 불문하고입니다.
#!/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