在我的ruby項目中,我想創建一個任務管理器類,它將週期性地遍歷註冊函數數組。我需要將函數作爲參數傳遞給註冊函數,創建一個線程,當線程計時器觸發時,它需要調用數組中的每個函數。我該如何對待像紅寶石中的對象?
class TaskMan
@@func_array = Array.new
def self.register_func &arg_func
@@func_array.push arg_func
end
def self.run_server
loop do
@@func_array.each do |func|
func.call
end
sleep 60
end
end
end
class Callee
def self.func_0
puts "func_0 called."
end
def self.func_1
puts "func_1 called."
end
end
TaskMan.register_func Callee.func_0
TaskMan.register_func Callee.func_1
taskman_thread = Thread.new do
TaskMan.run_server
end
taskman_thread.join
基本上,這就是我想做的事,但我不知道如何使用to_proc
和call
,在功能,推動並給他們打電話。
其他的解決方案也讚賞,但我不想避免學習傳遞函數作爲參數,將它們放入數組中並調用它們。
謝謝。
Ruby沒有函數。你的問題不清楚。 –