Enumerable基礎レベル
次の2つの式の返り値の違いとして正しいものはどれですか?
charges.select { |charge| charge[:amount] >= 1000 } charges.find { |charge| charge[:amount] >= 1000 }
- 1`select` は最初の1件、`find` は条件に合う全件を配列で返す
- 2`select` は条件に合う全件を配列で返し、`find` は最初の1件を返す
- 3どちらも条件に合う全件を配列で返す
- 4どちらも条件に合う最初の1件を返す
解説
select は条件に合う要素をすべて集めた配列を返します。一方、find は条件に合う最初の1件だけを返します。課金コードで全件対象にすべきところを find にすると、1件分しか計算されず、金額が合わないバグにつながります。