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 に答える