以与访问对象属性相同的方式访问哈希属性

sov*_*ndy 4 ruby hash

我说有一个红宝石哈希

h={name: "john", age: "23"}
Run Code Online (Sandbox Code Playgroud)

它不是一个对象,只是一个从对象创建的哈希.我想在访问对象时使用method属性访问其值.即:

h.name => "john"
h.age  => 23
Run Code Online (Sandbox Code Playgroud)

是否有可能做到这一点?

meg*_*gas 9

在您的情况下,使用openstruct会很方便

require 'ostruct'

h = OpenStruct.new(name: "john", age: "23")

h.name #=> "john"
h.age  #=> 23
Run Code Online (Sandbox Code Playgroud)