Ruby_Array_36
この記事は、以下のドキュメントを改変(自分なりに整理)して利用しています。
class Array (Ruby 3.0.0 リファレンスマニュアル)
インスタンスメソッド
length -> Integer
size -> Integer
- 配列の長さを返す
- 空配列のときは0を返す
irb(main):001:0> %w[a b c].length => 3 irb(main):002:0> [].length => 0
irb(main):001:0> [1, nil, 2].size => 3
irb(main):001:0> arr = %w[a b c] => ["a", "b", "c"] irb(main):002:0> arr.push(arr) => ["a", "b", "c", [...]] irb(main):003:0> arr.size => 4 irb(main):004:0> arr[2] => "c" irb(main):005:0> arr[3] => ["a", "b", "c", [...]] # memo # 無限にネストした配列だとこうなる。エラーにはならない。
# Array#lengthとArray#sizeの内部実装は同じようだ [1] pry(main)> require 'pry-doc' => true [2] pry(main)> show-source Array#length From: array.c (C Method): Owner: Array Visibility: public Signature: length() Number of lines: 6 static VALUE rb_ary_length(VALUE ary) { long len = RARRAY_LEN(ary); return LONG2NUM(len); } [3] pry(main)> show-source Array#size From: array.c (C Method): Owner: Array Visibility: public Signature: size() Number of lines: 6 static VALUE rb_ary_length(VALUE ary) { long len = RARRAY_LEN(ary); return LONG2NUM(len); }