为什么将回调参数设计为模块?

时间:2015-07-20 16:29:36

标签: ruby eventmachine

根据EventMachine.watch_file的文档,handler参数必须是一个模块(或继承自EventMachine::FileWatch的类)。为什么这样设计?对我来说,块(或Proc)参数会更自然和灵活(因为它允许通过闭包使用局部变量)......

1 个答案:

答案 0 :(得分:1)

文档不是很清楚,但您也可以提供FileWatch的子类。这样可以让您更轻松地使用当地人。

它需要一个带有所需方法的模块,或带有所需方法的类 AND 它必须是所需类的子类。

采用look at the code,特别是klass_from_handler方法。