我不知道为什么会这样。这是代码:
def calculate_discount items
items.each do |item|
#Nothing here
end
end
items = [5, 100]
calculate_discounts items
然后当我在命令行中运行时,我得到:
5
100
有没有人知道发生了什么事?
答案 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'的元素。