Ruby在每个循环中输出,不管是什么?
我不知道为什么会这样。代码如下:Ruby在每个循环中输出,不管是什么?,ruby,Ruby,我不知道为什么会这样。代码如下: def calculate_discount items items.each do |item| #Nothing here end end items = [5, 100] calculate_discounts items 然后,当我在命令行中运行它时,我得到: 5 100 还有人知道发生了什么吗?知道了。对不起,我太笨了,因为我已经有一段时间没有编写ruby了。我忘了ruby auto会返回最后一个值。ruby的函数
def calculate_discount items
items.each do |item|
#Nothing here
end
end
items = [5, 100]
calculate_discounts items
然后,当我在命令行中运行它时,我得到:
5
100
还有人知道发生了什么吗?知道了。对不起,我太笨了,因为我已经有一段时间没有编写ruby了。我忘了ruby auto会返回最后一个值。ruby的函数总是返回一个值。如果没有return语句,那么Ruby将返回函数中计算的最后一个值。Ruby的集合迭代器还返回一个值:
irb(main):018:0> [1,2,3].each do |item|
irb(main):019:1* end
=> [1, 2, 3]
因此,在本例中,“计算折扣”返回“项目”的元素。返回值并不意味着实际打印了值
当您使用IRB时,“p”函数显示函数返回的值。您期望的是什么?理想情况下为零。我想用数组中的值来计算一个值,但它只是输出值,没有告诉我。这仍然不能解释为什么会有输出。当然,该方法返回传入的数组,但是为什么要打印它呢?我在文件的下面打印计算出的折扣。啊!