Ruby打印功能

时间:2013-09-11 22:10:59

标签: ruby

# 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”] ?? 非常感谢

1 个答案:

答案 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