在 ruby 你可以去
a = { }
a['a'] = 82
a['b'] = 'foo'
puts a['a'] # 82
我希望我可以使用点符号,比如 javascript。
puts a.a # 82
有没有办法在 ruby 中构建对象文字并使用点表示法访问它们?
最佳答案
您可以创建一个 Struct
。
A = Struct.new(:a, :b)
a = A.new(82, 'foo')
puts a.a
#=> 82
编辑:
你甚至可以做
a = { }
a['a'] = 82
a['b'] = 'foo'
Struct.new(*a.keys).new(*a.values)
关于Ruby 对象字面量(ala javascript),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12632278/