Rubyリファレンス: Home

count (Enumerable)

Edit   History

Ruby 1.8.7 Ruby 1.9

標準クラス・モジュール > Enumerable > count

enum.count(obj)

countメソッドは、引数objと同じである要素の数を返します。引数を省略したときは、単純に要素の数を返します。

次の例は、ファイルの中の空行の数と全体の行数を数えます。

File.open("count.rb", "r") do |file|
  puts file.count("\n")
  file.rewind
  puts file.count
end
5
17      (ファイルによって数値は変わります)
enum.count {|item| block }

countメソッドにブロックを渡すと、要素の数だけ繰り返しブロックを実行し、ブロックの戻り値が真になった要素の数を返します。ブロック引数itemには各要素が入ります。

次の例は、ハッシュの中から値が"Tokyo"であるものの数を数えます。

cities = { "Chohu" => "Tokyo", "Kawasaki" => "Kanagawa",
           "Tokorozawa" => "Saitama", "Mitaka" => "Tokyo" }
puts cities.count {|k, v| v == "Tokyo" }
2

次の例は、1から30の間で7で割り切れる数を数えます。

puts (1..30).count {|n| n % 7 == 0 }
4

関連項目