对于
Ruby中的方法,有什么类似于javascript的应用吗?
也就是说,如果某些方法被定义为采用几个参数,例如some_method(a,b,c),并且我有一个三个数组,可以调用some_method.apply(the_context,my_array_of_three_items)吗?
编辑:(清除一些混乱):
我不太在乎呼叫的上下文,我只想避免这种情况:
my_params = [1,2,3] some_method(my_params[0],my_params[1],my_params[2])
相反,我很好奇,知道是否有这样的事情
my_params = [1,3] some_method.apply(my_params)
解决方法
有
bindings是javascript上下文的最接近的对象,有
unbound methods可以稍后绑定到对象被调用在它的范围内.
绑定必须早于captured,并允许evaluating code在字符串的上下文中.
使用method extractor从任何对象捕获的Unbinding方法允许您稍后将其bind转换为对象(请注意,它必须共享足够的接口以使方法工作)并将其称为范围.
除非你想在Ruby中破解一些非常低级的东西,否则我不鼓励使用上述两种方法来支持面向对象的解决方案.
编辑:
如果你只是想调用方法,而它的参数包含在数组中使用splat运算符:
a = [1,3] method(*a)