Enumerable モジュール
コレクションで共有される機能です。
「Enumerable モジュール」はCoddyKit上の無料Ruby Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはRuby Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Ruby Academyコースには全4レッスンが含まれています。
Enumerableとは
Enumerableは、配列、ハッシュ、範囲などのコレクションに、強力な共通メソッド群を提供するモジュールです。eachを持つクラスなら組み込めます。
puts [1, 2, 3].is_a?(Enumerable)
puts (1..3).is_a?(Enumerable)include?とmember?
include?で、コレクションに値が含まれているかを確認できます。
nums = [10, 20, 30]
puts nums.include?(20)
puts (1..5).include?(3)count
countは要素数を返します。ブロックを指定すると、条件に一致する要素を数えます。
nums = [1, 2, 3, 4]
puts nums.count
puts nums.count { |n| n.even? }min、max、minmax
minやmaxで最小値・最大値を求められます。両方を一度に求めるにはminmaxを使います。
nums = [4, 1, 7, 3]
puts nums.min
puts nums.max
puts nums.minmax.inspectsum
sumはすべての要素を加算します。開始値も指定できます。
puts [1, 2, 3].sum
puts [1, 2, 3].sum(100)sortとsort_by
sortは要素を並べ替え、sort_byは計算したキーを基準に並べ替えます。
words = ["pear", "a", "fig"]
puts words.sort.inspect
puts words.sort_by { |w| w.length }.inspectany?とall?
少なくとも1つの要素が一致するとany?はtrueになり、すべての要素が一致した場合にのみall?はtrueになります。
nums = [2, 4, 6]
puts nums.all? { |n| n.even? }
puts nums.any? { |n| n > 5 }none?とfind
一致するものが何もない場合、none?はtrueになります。find(別名はdetect)は最初に一致した要素を返します。
nums = [1, 3, 5]
puts nums.none? { |n| n.even? }
puts nums.find { |n| n > 2 }firstとtake
firstは先頭の要素(複数)を取得します。takeは先頭から指定した数の要素を取得し、dropはその要素数を飛ばします。
nums = [10, 20, 30, 40]
puts nums.first(2).inspect
puts nums.drop(2).inspectgroup_by
group_byは、ブロックの結果を基準に要素を分類したハッシュを作成します。
nums = [1, 2, 3, 4, 5]
groups = nums.group_by { |n| n.even? ? :even : :odd }
puts groupseach_with_index
each_with_indexは、要素とその位置を同時に渡します。
%w[a b c].each_with_index do |item, i|
puts "#{i}: #{item}"
endクイックチェック
Enumerableについての知識を確認しましょう。
まとめ
Enumerableを使うと、コレクションに強力な機能を追加できます。
include?、count、min/max、sumsort/sort_by、any?/all?/none?find、first/take/dropgroup_by、each_with_index
次はmap、select、rejectについて詳しく学びます。
puts [3, 1, 2].sort.inspectよくある質問
「Enumerable モジュール」レッスンは無料ですか?
はい。「Enumerable モジュール」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Ruby Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Ruby Academyコースには全4レッスンが含まれています。
「Enumerable モジュール」で何を学びますか?
コレクションで共有される機能です。 ブラウザで直接実行するハンズオンコードでRuby Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Ruby Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのRuby Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「Enumerable モジュール」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このRuby Academyレッスンでコードを書いて実行できますか?
はい。すべてのRuby Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- 範囲の作成
- Enumerable モジュール
- map、select、reject
- reduce と each_with_object