2008年9月24日水曜日

【初めてのRuby】(2)

第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 件のコメント: