#!/usr/bin/ruby
# -*- coding: UTF-8 -*-
# 迭代器
# => 简单来说: 迭代(iterate)指的是重复做相同的事, 所以迭代器(iterator)就是用来做重复多次相同的事.
# => 迭代器是集合(存储一组数据成员的对象称为集合, Array、Hash)支持的方法.
# => 迭代器返回集合的所有元素, 一个接着一个.
# => 先看 each 和 collect.
# Ruby each 迭代器
# each 迭代器返回数组或哈希的所有元素
# 为集合中的每个元素执行 code. 在这里, 集合可以是Array或Hash.
arr0 = [1, 2, 3, 4]
arr0.each do |i|
# each 迭代器总是与一个block关联. 它向block返回数组的每个值, 一个接着一个. 值被存储在变量i中, 然后显示在屏幕上.
puts i
end
puts
# Ruby collect 迭代器
# => collect 迭代器返回集合的所有元素.
# => collect 方法不需要总是与一个块关联. collect 方法返回整个集合, 不管它是Array或者是Hash.
arr1 = [1, 2, 3, 4]
arr2 = Array.new
arr2 = arr1.collect{|x| x}
puts arr2
puts
arr3 = [1, 2, 3, 4]
arr4 = Array.new
arr4 = arr3.collect{|x| x * 10}
puts arr4