我实际上是在尝试这样做
module Foo
@@do_something = Proc.new { puts "something" }
end
Foo::do_something.()
属性需要是procs / lambdas,以便它们可以作为参数传递给另一个proc / lambda /方法:
def other_method(do_something)
do_something.()
end
other_method(Foo::do_something)
目前正在运作:
module Foo
DO_SOMETHING = Proc.new { puts "something" }
end
Foo::DO_SOMETHING.()
但是我猜这不会通过代码审查。这是唯一的方法吗?
答案 0 :(得分:0)
您只需为类变量创建一个访问器:
module Foo
def self.do_something
@@do_something
end
@@do_something = Proc.new { puts "something" }
end
Foo::do_something.()
something
或以下任何一项:
Foo::do_something[]
Foo::do_something.call
Foo::do_something.yield