0
我基本上是試圖做到這一點存儲過程的模塊屬性?
module Foo
@@do_something = Proc.new { puts "something" }
end
Foo::do_something.()
的屬性必須特效/ lambda表達式,使他們能夠作爲參數傳遞給另一個PROC /λ/方法進行傳遞:
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.()
但我猜這不會通過代碼審查。這是唯一的方法嗎?
我有好幾個,這些特效的,所以我關心的是性能的數和訪問器方法。我想我可以直接從self.do_something返回proc而不是將其存儲在@@ do_something中並返回它? – Kylee
您可能會考慮將它們存儲在散列中,以模塊函數的形式返回,該函數將鍵作爲參數。我只是因爲你這樣做才使用了類變量,因爲我這樣咬牙切齒。 –
該解決方案更有意義且更具可擴展性。 – Kylee