Rubyでsizeを使う方法を現役エンジニアが解説【初心者向け】

初心者向けにRubyでsizeを使う方法について現役エンジニアが解説しています。sizeメソッドとは対象オブジェクトの長さ( length )や要素数( size ) を調べることができるメソッドであり、要素の形に合わせ使い分けましょう。

TechAcademyマガジンは受講者数No.1のオンラインプログラミングスクールTechAcademy [テックアカデミー]が運営。初心者向けに解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。

Rubyでsizeを使う方法について、TechAcademyのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。

 

Rubyについてそもそもよく分からないという方は、Rubyとは何なのか解説した記事を読むとさらに理解が深まるでしょう。

 

なお本記事は、TechAcademyのオンラインブートキャンプRuby講座の内容をもとに紹介しています。

田島悠介

今回は、Rubyに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

Rubyでsizeを使う方法について詳しく説明していくね!

大石ゆかり

お願いします!

 

sizeとは

sizeメソッドとは、使用すると対象オブジェクトの長さ( length )や要素数( size ) を調べることができます。

sizeメソッドは対象オブジェクトのサイズ( size )/長さ( length )を返すことが可能です。

 

sizeメソッドを使う利点と使われるケース

size メソッドを使うことで、対象オブジェクトのサイズ( size )/長さ( length )を簡単に調べることが可能です。

  • 配列やハッシュや範囲オブジェクトの場合は要素数を返します。
  • 文字列の場合は文字数を返します。
  • 整数の場合は実装バイト数を返します。
  • ファイルの場合はファイルサイズを返します。

 

[PR] Rubyのプログラミングで挫折しない学習方法を動画で公開中

lengthやcountとの違い

count メソッドは引数と「合致する要素の数( count )」を返し、引数を指定しない場合は単純に要素数を返すものです。

ブロック式を引数にした場合は、評価の合致した要素の数( count )を返します。

そして、size / length メソッドが単純に「サイズ・長さ」を返すのに対して、 countメソッドは「条件に合致した要素の数」を返す点が異なります。

 

sizeを使う方法

以下の形式で対象オブジェクトの要素数を調べることが可能です。

配列オブジェクト.size
文字列オブジェクト.size
ハッシュオブジェクト.size
範囲オブジェクト.size
整数オブジェクト.size
ファイルオブジェクト.size

また、配列やハッシュや範囲オブジェクトの場合は要素数、文字列の場合は文字数を返します。

整数の場合は実装バイト数、ファイルの場合はファイルサイズを返します。

 

実際に書いてみよう

以下、サンプルコードです。

# 文字列の場合は文字数を返します。
# 半角スペースも1文字として評価されます。
puts "h e l l o ".size #=> 10
# 配列やハッシュ、範囲の場合は要素数を返します。
puts [1, 2, 3, 4, 5].size #=> 5
puts ( {1 => 10, 2 => 20}.size ) #=> 2
puts (1..5).size #=> 5
# count メソッドはブロック式に合致する要素数を返します。
puts [1,2,3,4,5,1,2].count(1) #=> 2
puts [1,2,3,4,5,1,2].count {|i| i == 2} #=> 2
puts "hello".count("l") #=> 2
puts ( {1 => 10, 2 => 20}.count {|k,v| v == 20} ) #=> 1
puts (1..5).count(1) #=> 1
__END__

 

実行結果

#=>
9
5
2
5
2
2
2
1
1

 

まとめ

今回はsizeメソッドについて学び、以下のことを学習できました。

  • sizeメソッドは対象オブジェクトの要素数を返す。
  • sizeメソッドとlengthメソッドはほぼ等価。
  • countメソッドは条件に合致する要素数を返す。

要素数を調べる場合には、sizeメソッドを使用していきましょう。

 

執筆してくれたメンター

メンター古川さん

Rubyが得意で、Webエンジニアとして最上流から最下流までセルフスターターとして活躍してきました。

近年セミリタイアし、フリーランスとして適度に働きながら穏やかな生活を楽しでいます。

 

大石ゆかり

Rubyでsizeを使う方法がよく分かったので良かったです!

田島悠介

ゆかりちゃん、今後も分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

TechAcademyでは、初心者でも最短4週間で、Ruby on Railsを使ったプログラミングを習得できるオンラインブートキャンプを開催しています。

また、現役エンジニアから学べる無料体験も実施しているので、参加してみてください。