0

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

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

items = [5, 100]
calculate_discounts items

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

5
100

还有人知道发生了什么吗?

4

3 回答 3

2

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

使用 IRB 时,“p”函数显示函数返回的值。

于 2012-08-13T13:48:20.827 回答
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”的元素。

于 2012-08-13T13:43:00.617 回答
0

知道了。对不起,我很愚蠢,因为我有一段时间没有编写 ruby​​ 代码了。我忘记了 ruby​​ 会自动返回最后一个值。

于 2012-08-13T13:40:58.720 回答