Tôi đang cố chuyển băm và băm lồng vào đối tượng.chuyển đổi băm thành đối tượng
cho đến nay đối tượng băm đầu tiên được chuyển đổi thành công bởi mã này:
class Hashit
def initialize(hash)
hash.each do |k,v|
self.instance_variable_set("@#{k}", v)
self.class.send(:define_method, k, proc{self.instance_variable_get("@#{k}")})
self.class.send(:define_method, "#{k}=", proc{|v| self.instance_variable_set("@#{k}", v)})
end
end
end
Nhưng vấn đề là, tôi cũng muốn chuyển đổi đối tượng băm lồng nhau. nhưng không thể làm được.
h = Hashit.new({a: '123r', b: {c: 'sdvs'}})
=> #<Hashit:0x00000006516c78 @a="123r", @b={:c=>"sdvs"}>
xem @b={:c=>"sdvs"}
phần này ở đầu ra. Tôi cũng muốn chuyển đổi nó thành đối tượng. liệu có thể nếu có thì làm thế nào?
Nếu bạn hỏi cho 'h' có biến dụ' [: @a,: @b,: @c] ', như @Ben và tôi cho rằng, câu trả lời bạn đã chọn không chính xác. –