第2章
配列とハッシュは、他のオブジェクトへの参照を保管しており、オブジェクトそのものではない。
2.1 配列
配列の構成法
c = [1, a, "str", [b,2]]
配列要素の参照
c[0] #=> 1
c[3] #=> [b,2]
※ c[3]はc.[](3)のsyntactic sugar . see Array#[]
配列の部分参照
c[1,3] #=> [a, "str", [b,2]]
c[1..2] #=> [a, "str"]
配列要素のmutation
a = [1, 2]
a[0] = 3
a[0,3] = 'a', 'b', 'c'
a[1..2] = "?"
配列は伸びたり、縮まったりする。
Array#[]= メソッド
その他配列メソッド
length size *= include? sort uniq uniq!
イテレータ each each_with_index map map sort select
ブロック付きメソッドにおける do end と{ }の使い分け
- 基本的にdo endを使い、特別な場合に{ }とある。
しかし、ブロック付きメソッドがhigher functionへの関数と考えると、
do endは非常にわかりにくい。{ } のほうがわかりやすいと思うのだが。慣れの問題か。
2.2 ハッシュ
h = { "a" => "aa", "b" =>"bb"}
メソッド each map
2.3 Enumberable モジュール
def map
result = []
self.each {item result << yield(item)}
end
Enumerator は、each以外のイテレータに基づいてEnumerableの機能を提供するクラス。
0 件のコメント:
コメントを投稿