count、length、sizeは何が違うのか?(Ruby)

f:id:ryoutaku_jo:20190416215618p:plain

【結論】

・countメソッドは、配列の要素の数を返す。
 ブロック引数を指定すると、ブロック内の条件式を繰り返し実行し、  合致する要素の数を返す。

・lengthまたはsizeメソッドは、
 文字列中の文字の数を返す。
 配列に対して使用すると、要素の数を返す。

・ブロックを繰り返し実行する関係で、
 countはlengthやsizeより処理速度が劣る傾向にある。
 一方で、ブロック引数でカウント対象を
 条件設定できるのはcountだけである。

【目次】

【本題】

配列の要素数を数える方法

Rubyでは、配列の要素数を数える為のメソッドが
3種類用意されています。

今回はそれらの違いと利用用途をまとめます。

count

countメソッドは、ブロック引数を指定すると、
ブロックを要素の数だけ実行し、
ブロックで指定された条件に合致した要素の数を返します。

ref.xaio.jp

length、size

lengthとsizeメソッドは、
いずれも同じ機能も持ったメソッドです。

文字列中の文字の数を返します。
配列に対して使用した場合は、配列の要素数を返します。

ref.xaio.jp

使い分け

countは引数が指定されていない場合でも、ブロックを繰り返し実行するので、
単純に配列の数を出したい場合は、処理速度の観点で、lengthやsizeの方が優れています。

なお、lengthとsizeに機能的な違いは無い為、
どちらを使うかは、現場のコード規約に従うことになります。

一方で、lengthやsizeでは条件の指定ができない為、
条件を指定したい場合に、countを利用するのが、使い分けといて最適と言えます。

《今日の学習進捗(3年以内に10000時間に向けて)》

学習開始からの期間 :130日
今日までの合計時間:1247h
一日あたりの平均学習時間:9.6h
今日までに到達すべき目標時間:1187h
目標との解離:60h
「10,000時間」まで、

残り・・・「8753時間!」