我对Ruby太陌生了
我们可以说attr_accessor :bark
糖涂层
def bark
@bark
end
def bark=(val)
@bark = val
end当给定多个参数时,什么是相同的?
attr_accessor *args
args.each { |attr|
def attr
@attr
end
def attr=(val)
@attr= val
end
}如果是这样的话,我如何在初始化所有给定的参数时使用相同的
以及在class_eval(Meta OOP中)与动态attr+random_str
发布于 2012-05-12 13:11:10
这些东西
attr_accessor *args
args.each { |attr|
def attr
@attr
end
def attr=(val)
@attr= val
end
}不起作用。它将创建一个方法"attr“,它返回实例变量"@attr”的值。我想这不是你想做的,对吧?你应该这么做
args.each do |arg|
self.define_singleton_method arg do self.instance_variable_get arg end
end对于采摘者和策划者来说几乎一样。我不知道你是什么意思
如果是
,我如何在所有给定参数的初始化以及在class_eval(Meta )中使用动态attr+random_str?
问候
https://stackoverflow.com/questions/9532839
复制相似问题