我不知道爲什麼會發生這種情況。下面是代碼:無論如何,在每個循環中輸出Ruby?
def calculate_discount items
items.each do |item|
#Nothing here
end
end
items = [5, 100]
calculate_discounts items
然後當我在命令行中運行它,我得到:
5
100
有沒有人知道這是怎麼回事?
我不知道爲什麼會發生這種情況。下面是代碼:無論如何,在每個循環中輸出Ruby?
def calculate_discount items
items.each do |item|
#Nothing here
end
end
items = [5, 100]
calculate_discounts items
然後當我在命令行中運行它,我得到:
5
100
有沒有人知道這是怎麼回事?
明白了。對不起,我很愚蠢,因爲我一段時間沒有編碼紅寶石。我忘了紅寶石自動返回最後一個值。
這仍然不能解釋爲什麼有輸出。當然,該方法返回傳入的數組,但它爲什麼要打印? – 2012-08-13 14:10:07
我在文件中進一步打印計算的折扣。衛生署! – andy 2012-08-13 14:17:49
Ruby的函數總是返回一個值。如果你沒有return語句,那麼Ruby會返回函數中計算出的最後一個值。 Ruby的集合迭代器也返回一個值:
irb(main):018:0> [1,2,3].each do |item|
irb(main):019:1* end
=> [1, 2, 3]
因此,在這種情況下,「calculate_discount」返回「項目」的元素。
返回值並不意味着該值實際上是打印的。
當您使用IRB時,'p'函數顯示函數返回的值。
你在期待什麼? – 2012-08-13 13:38:12
理想情況下什麼都沒有。我想使用數組中的值來計算一個值,但它只是輸出這些值而不告訴它。 – andy 2012-08-13 13:39:11