【发布时间】:2022-11-07 21:25:05
【问题描述】:
我已经对此进行了在线研究,并在 SO 上搜索了解决方案,但仍然没有。
需要一种简单、高效、节省时间和空间的方式来调用class 中的所有函数
这里我有一个class,里面定义了许多methods。在class 结束后,我必须调用所有已定义的methods 来执行每个methods 中的代码块。
class Sample
def initialize(arg1, arg2)
@arg1 = arg1
@arg2 = arg2
end
def method1
puts @arg1
end
def method2
puts @arg2
end
def method3
puts "This is method3"
end
def method4
puts "This is method4"
end
.............
.............
............. etc...
end
现在创建一个object 来调用class 和method
object = Sample.new(par1, par2)
object.method1
object.method2
object.method3
object.method4
.............
............. etc...
使用object.method_name(parameter) 一个一个地调用methods 真的很难,而且需要很长的空间和时间。
是否可以通过单行代码(或)以任何其他有效方式调用所有methods?
【问题讨论】:
-
调用一个类中的所有函数: 你的意思是自动地查找(并调用)类中定义的所有方法(当然除了从父类继承的方法)?或者自动查找满足某个命名模式的类的所有方法?
-
您的意思是自动查找(并调用)类中定义的所有方法=> 是的,我期望会有一些“直接方法”,如“.sort、.call 等......可以与类名一起添加,如 #=> { class_name.some_method } 将使所有要自动调用的方法:)
-
您可以动态查找类的所有方法。查看
public_methods和instance_methods的Ruby 文档。