そんな今日この頃でして、、、

コード書いたり映画みたり。努力は苦手だから「楽しいこと」を探していきたい。

Rubyのお勉強 第11章「コレクションを使ってデータの集まりを操作しよう」&第12章「蔵書データの集まりをコレクションにしよう」

作りながら学ぶRuby入門 第2版

作りながら学ぶRuby入門 第2版

 

11章ではやっとHashクラス(連想配列)の登場。

キーとして文字列もしくはSymbolクラス(:[名前]の形)を指定し作成できる。

test = {:a => 1, :b => 2}

また、空のハッシュを作成する際は{}かHash.newで。

 

値を取り出す際は下記のように取り出す。

puts test[:a]

> 1

 

この辺はPerlと記号の使い方が全然違うので注意。

最近全然使ってないのでうろ覚えだが、PHPはこんな感じだった気がする。

 

 

追加を行う際は新たなキーで=で代入するだけ。

test[:c] = 3

 

削除の場合はdeleteメソッドを用いる。

test.delete(:b)

 

キーが存在するかの判定はinclude?メソッドやmember?メソッドを用いる。

test.include?(:b)

?までがメソッド名なのに注意。

tureかfalseを返すメソッドはこのような命名になることが多いらしい。

前章のインスタンス変数の時にも思ったけど、Rubyは役割が明示的なのが素晴らしい。

 

そしてよく使いそうな繰り返し処理に関してはArrayクラス同様にeachメソッドが使えるらしい。

test.each { |key, value|

  処理

}

キーと値を同時に取り出してくれるのは地味に気が利いている。

ちなみにキーだけを取り出すeach_keyというメソッドもあるらしい。

 

 

そしてなぜかこのタイミングで正規表現の話がさらっと。

使い方は=~//というPerlと同様の形式。

 

 

12章では、上記の内容を踏まえた書籍管理プログラムの作成。

 

 

eachとか地味に便利で、流石は後発の言語なだけのことはあるなという感じ。

Ver1.9からはハッシュの順序も作成順で保証されるらしいのは実用上使いやすそうで良いなぁなんて思う。

 

 

それにしてもPHPの書き方とか完全に忘れてしまったなぁ・・・