# Call the each method of each collection in turn.
# This is not a parallel iteration and does not require enumerators.
def sequence(*enumerables, &block)
enumerables.each do |enumerable|
enumerable.each(&block)
end
end
# Examples of how these iterator methods work
a,b,c = [1,2,3],4..6,'a'..'e'
print "#{sequence(a,b,c) {|x| print x}}\n"
结果如下:
123456abcde[[1, 2, 3], 4..6, "a".."e"]
任何人都可以告诉我为什么[[1,2,3],4..6,“a”......“e”]正在打印? 或告诉我为什么'序列'方法的返回值是[[1,2,3],4..6,“a”......“e”] ?? 非常感谢
答案 0 :(得分:1)
sequence(a,b,c) { |x| print x }
打印123456abcde
和
print "#{some_code}\n"
将打印some_code
的返回值。在您的示例中,each
循环返回[[1, 2, 3], 4..6, "a".."e"]
,因为each
的返回值为self
(请参阅:http://apidock.com/ruby/v1_9_3_392/Enumerator/each)