2014年6月19日木曜日

ハッシュとは?シンボルとは?

 ハッシュって意味が分からない。
 配列の値を特定するためのキーは通常の配列では数値(インデックス)だけど、ハッシュ(連想配列)では文字列を使うみたい。
irb(main):049:0> user = {} #ハッシュを定義、初期化する
=> {}
irb(main):050:0> user["u"] = "unko"
=> "unko"
irb(main):051:0> user["a"] = "anko"
=> "anko"
irb(main):052:0> user["u"]
=> "unko"
irb(main):053:0> user #リテラルな表記で返される
=> {"u"=>"unko", "a"=>"anko"}
irb(main):054:0> user = { "p" => "pink", "t" => "tank" } #複数同時に代入できる
=> {"p"=>"pink", "t"=>"tank"}
irb(main):055:0> user
=> {"p"=>"pink", "t"=>"tank"}
ちょっとわかった気がする。
 でもシンボルはもっとわからない。Railsではハッシュではなくシンボルの方がよく使うそうです。
シンボルはハッシュのキーとして利用するのですが、"unko"のようなリテラルではなく :unko のように頭にコロンを置きます。しかもRuby1.9からは下記のような表記も許され、一般的になっているそうな。大混乱。
{ :name => "unko", :email => "unko@unko.com" }
{ name: "unko", email: "unko@unko.com" }
2番目の表記ではシンボルにハイフンが使えないんですって。更に大混乱。ルールが細かい。
 チュートリアルではシンボルについて明解な説明は無かった?読み飛ばしたのかな。結局、なぜRailsではシンボルを主に使用するのか、よくわからなかった。書式はなんとなくわかったけど。

参考:

0 件のコメント:

コメントを投稿