我有一个包含以下代码的文件,
我希望先运行初始化方法,然后调用
class Lol < Redstone
def initialize
super 2013
end
call "/" do |headers|
"headers"
end
end
但是当我执行这个时,首先调用方法调用。如何解决这个问题?
initialize
是这个类中的一个实例方法,所以def initialize
只是为这个类设置了构造函数。call..
在解析类定义时调用类的 call
方法。这段代码相当于
class Lol < Redstone
def initialize
super 2013
end
end
Lol.call "/" do |headers|
"headers"
end
(假设 call 是一个公共类方法)
call
除了实际类定义中的代码(如方法)之外,Ruby 并没有真正的类构造函数的概念。如果你需要做某事,你可以这样做:
class Lol < Redstone
def self.init
#do class setup
end
init
def initialize
super 2013
end
call "/" do |headers|
"headers"
end
end
但是,根据您希望它的工作方式,这可能无法满足您的需求。