无论如何,Ruby在每个循环中输出?

时间:2012-08-13 13:30:56

标签: ruby

我不知道为什么会这样。这是代码:

def calculate_discount items
    items.each do |item|
        #Nothing here
    end
end

items = [5, 100]
calculate_discounts items

然后当我在命令行中运行时,我得到:

5
100

有没有人知道发生了什么事?

3 个答案:

答案 0 :(得分:2)

返回值并不意味着实际打印了该值。

使用IRB时,'p'功能显示函数返回的值。

答案 1 :(得分:0)

知道了。对不起我是傻瓜,因为我有一段时间没有编写红宝石。我忘记了ruby自动返回最后一个值。

答案 2 :(得分:0)

Ruby的函数总是返回一个值。如果没有return语句,则Ruby返回函数中计算的最后一个值。 Ruby的集合迭代器也返回一个值:

irb(main):018:0> [1,2,3].each do |item|
irb(main):019:1* end
=> [1, 2, 3]

因此,在这种情况下,'calculate_discount'会返回'items'的元素。