# ハッシュ person = {name: "Taro", age: 16} p person[:name] # 構造体 Person = Struct.new(:name, :age) person = Person.new("Taro", 16) p person.name どう使い分けるとよいのだろうか? 参考 http://stackoverflow.com/questions/3275594/when-to-use-struct-instead-of-hash-in-ruby ほぼこれを翻訳しただけです ポイント1: ハッシュは動的、構造体は静的 ハッシュは存在しない要素を参照したり、要素をあとから追加できます。一方、構造体は初めに定義した要素しか扱えません。 # ハッシュ person = {name: "Taro", age: 16} person[:tel] # => n