ほんとだ、Struct って便利
そこでStructですよ - ’(rubikitch wanna be (a . lisper))
最初は某有名ブロガーのエントリで見たんだけど、
data = [ {'name'=>'Foo', 'age'=>20, 'email'=>'foo@mail.com'}, {'name'=>'Bar', 'age'=>21, 'email'=>'bar@mail.net'}, {'name'=>'Baz', 'age'=>22, 'email'=>'baz@mail.org'}, ]
これが、Struct を使うと、
Person = Struct.new(:name, :age, :email) data = DATA.readlines.map{|buf| Person.new(*buf.strip.split(/\s*,\s*/))} __END__ Foo, 20, foo@mail.com Bar, 21, bar@mail.net Baz, 22, baz@mail.org
データがスッキリ分離できる。
それよりも Struct にアクセスするときに、
- s["name"]
- s[:name]
- s[0]
- s.name
が同じってのが凄い。
JavaScript みたいだ。