带参数的返回方法,在Ruby中执行

zengzsys  于 2023-02-21  发布在  Ruby
关注(0)|答案(1)|浏览(129)

在Ruby中是否可以返回一个带参数的方法以便以后执行。
我尝试的是这个:

def my_method(a, b)
    p a
    p b
end

def action
    return "my_method", ["A", "B"]
end

method, pars = action
send(method, *pars)

这是可行的,但是如果my_method的参数是复杂的结构,而不仅仅是字符串之类的,那么我不能把它们作为字符串放到参数数组中,那么也许有一个更优雅的方法来解决这个问题,那么有没有可能做一些类似return my_method(a,b)的事情,而不执行它,而是真正返回以供以后处理?

pkwftd7m

pkwftd7m1#

你可以使用lambdas,如果你返回一个lambda,你只需要稍后执行.call

def my_method(a, b)
  p a
  p b
end

def action
 -> { my_method("A", "B") }
end

method, pars = action
action.call

相关问题