0Pricing
Ruby Academy · レッスン

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.inspect

sum

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 }.inspect

any?と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).inspect

group_by

group_byは、ブロックの結果を基準に要素を分類したハッシュを作成します。

nums = [1, 2, 3, 4, 5]
groups = nums.group_by { |n| n.even? ? :even : :odd }
puts groups

each_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、sum
  • sort/sort_by、any?/all?/none?
  • find、first/take/drop
  • group_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フィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. 範囲の作成
  2. Enumerable モジュール
  3. map、select、reject
  4. reduce と each_with_object
← Ruby Academyに戻る