Enumerable基礎レベル
次のプログラムを実行すると何が表示されますか?
charges = [] total = charges .select { |charge| charge[:active] } .sum { |charge| charge[:amount] } p total
- 1nil
- 20
- 3[]
- 4NoMethodError が発生する
解説
空配列に対して select を呼ぶと空配列のままです。その空配列に対して sum を呼ぶと、足す要素がないため 0 を返します。nil ではありません。課金コードでは「対象 charge がないので合計0円」と読めるケースがあります。