Railsチュートリアル第8章(第6版)でハッシュとシンボルを忘れていたので、復習した。
#①ハッシュとは
・基本的には配列と同じだが、インデックスとして整数値以外のものを使える。
・キーと値のペアを波カッコで囲んで表記する。
・ハッシュでは要素の並び順が保障されない。
・JavaでいうMapだと思っている。
>> user = {} # {}は空のハッシュ
=> {}
>> user["first_name"] = "Pai" # キーが "first_name" で値が "Pai"
=> "Pai"
>> user["last_name"] = "Abble" # キーが "last_name" で値が "Abble"
=> "Abble"
>> user["first_name"] # 要素へのアクセスは配列の場合と似ている
=> "Pai"
#②省略1
ハッシュの1要素を角カッコを使って定義する代わりに、=>
(ハッシュロケット)を使ってリテラル表記する方が簡単。
>> user = { "first_name" => "Pai", "last_name" => "Abble" }
=> {"last_name"=>"Abble", "first_name"=>"Pai"}
#③省略2 -シンボル-
・Railsではハッシュのキーとして、文字列よりもシンボルを使うのが普通。
・シンボルはクォートで囲む代わりにコロンを前に置く。
・文字列と違って全ての文字が使えるわけではない。(一般的なアルファベットを使うかぎりは問題ないらしい)
・Ruby以外ではごく一部の言語にしか採用されていない特殊なデータ形式。
>> "name" #文字列
=> "name"
>> :name #シンボル
=> :name
>> :foo-bar #使えない文字
NameError: undefined local variable or method `bar' for main:Object
>> :2foo #使えない文字
SyntaxError
ハッシュのキーにシンボルを採用する場合のuser
>> user = { :first_name => "Pai", :last_name => "Abble" }
=> {:last_name =>"Abble", :first_name =>"Pai"}
#④省略3
ハッシュではシンボルをキーとして扱うことが一般的なので、Ruby1.9からは新しい記法がサポートされた。
・シンボルとハッシュロケットの組み合わせを、キーの名前の前ではなく後にコロンを置き、その後に値が続くように置き換えることが出来る。
>> user = { first_name: "Pai", last_name: "Abble" }
=> {:last_name =>"Abble", :first_name =>"Pai"}
#⑤まとめ
①~④で忘れていた箇所を思い出せた。