gpt4 book ai didi

ruby 如何传递方法并使用参数调用它

转载 作者:太空宇宙 更新时间:2023-11-03 17:45:49 28 4
gpt4 key购买 nike

我尝试在 ruby​​ 中执行以下操作,但没有成功:

method_map = {
'one' => one
}
def one(param)
puts param
end

method_map['one']('hi')

然后我意识到在 ruby​​ 中这会在我放入括号之前调用该方法,所以我发现我可以传递一个方法名来代替

method_map = {
'one' => :one
}
method_map['one']('hi')

但是还是不行。在 ruby​​ 中传递方法然后使用参数调用它的正确方法是什么?

最佳答案

使用 send

的一种方法如下
2.2.2 > send(method_map['one'], 'hi')
=> hi

使用调用

2.2.2 > method(method_map['one']).call('hi')
=> hi

你也可以使用eval(不推荐)

2.2.2 > eval "#{method_map['one']}('hi')"
=> hi

基准测试(100 万次迭代)

       user     system      total        real
send 0.670000 0.000000 0.670000 ( 0.668050)
call 0.230000 0.000000 0.230000 ( 0.225053)
eval 4.920000 0.000000 4.920000 ( 4.919729)

关于ruby 如何传递方法并使用参数调用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37624931/

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