Ruby初學者スレッド Part 9
■ このスレッドは過去ログ倉庫に格納されています
0350デフォルトの名無しさん
2006/12/11(月) 04:06:06obj.new(:foo => "hoge", :bar => "hage")
は
obj.new({:foo => "hoge", :bar => "hage"})
と書いたのと同じ意味だ。つまり、obj#newにHashを渡している。
で、なぜSymbolオブジェクトをHashのキーにしているかというと、
・タイプしやすい。文字列に比べて1文字少なくて済む
obj.new("foo" => "hoge", "bar" => "hage")
とタイプするよりは楽だということ。
・Symbolの方がStringよりも生成時に性能的に有利。
Symbolは内部的には整数で表されてるんで。
ということかな。まあ慣習で強制されているものではないので、
SymbolではなくStringをHashのキーに取る実装もあり得るし存在している。
■ このスレッドは過去ログ倉庫に格納されています