我无法继承Struct.我必须实现像Struct这样的类.有没有办法改进我的代码使用"ClassName"和功能像Struct?写k = Dave.new("Rachel","Greene")???
class MyStruct
def self.new(*attributes)
puts "ppp"
dynamic_name = "ClassName"
Kernel.const_set(dynamic_name,Class.new() do
attributes.each do |action|
self.send(:define_method, action) {
puts "call #{action}"
}
end
end
)
end
end
# class ClassName
# def new *args
# puts "iii"
# end
# end
Dave = MyStruct.new(:name, :surname)
k=Dave.new() # k=Dave.new("Rachel" , "Greene")
k.surname
k.name
Run Code Online (Sandbox Code Playgroud)