gpt4 book ai didi

ruby - Ruby 中的 Javascript 样式 `apply`?

转载 作者:数据小太阳 更新时间:2023-10-29 06:36:48 24 4
gpt4 key购买 nike

对于Ruby中的方法,有没有类似javascript的apply的?

也就是说,如果某些方法被定义为采用一些参数,比如 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, 2, 3]
some_method.apply(my_params)

最佳答案

bindings这是最接近javascript上下文的对应物,并且有unbound methods稍后可以绑定(bind)到要在其范围内调用的对象。

绑定(bind)必须早于 captured , 他们允许 evaluating code来自上下文中的字符串。

Unbinding使用 method extractor 从任何对象捕获的方法允许您稍后bind它到一个对象(注意它必须共享足够的接口(interface)才能使方法工作)并在它的范围内调用它。

除非你想破解 Ruby 中的一些非常低级的东西,否则我不鼓励使用以上两者,而支持面向对象的解决方案。


编辑:

如果您只是想调用方法,而它的参数包含在数组中,请使用 splat 运算符:

a = [1, 2, 3]
method(*a)

关于ruby - Ruby 中的 Javascript 样式 `apply`?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17447305/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com