【发布时间】:2012-07-15 18:52:22
【问题描述】:
有没有办法将属性分配给方法?我知道你可以用类来做到这一点,但我有一系列类似的方法,如果我可以为每个人分配一个属性,那真的很有帮助。有谁知道如何做到这一点,或者在 Ruby 中是否有可能?
编辑:我的意思是,当你有一个类时,你可以像这样为它分配属性:
class Person
attr_accessor :age
...
end
我想知道是否也可以使用这样的方法来做到这一点:
class Trucks
def get_fire_truck_name
attr_accessor :size
...
end
end
(顺便说一句,这只是一个例子。实际的程序要复杂得多,这就解释了为什么我不能简单地将我的方法变成类来赋予它们属性。)
【问题讨论】:
-
你应该提供例子来描述你的问题,否则你的问题是错误的。
-
就像你可以用 Python 或 Javascript 做的那样? Ruby 的方法不是对象,所以答案是否定的。
-
@tokland Ruby 方法是 definitely objects。
-
是的,我想我不能按照我想要的方式去做,但我想我已经找到了解决这个问题的方法。无论如何,谢谢你们的帮助!
-
Brandan:有一个名为
Method的类这一事实并没有说明方法本身就是对象。可以像使用字符串或块一样发送方法作为参数吗?不,您必须先将它们转换为Method对象:obj.method(:name)。方法在 Ruby 中不是一流的,块才是。 stackoverflow.com/a/2602485/188031
标签: ruby methods attributes