在Ruby中的函数上调用call()

Dam*_*ski -1 ruby

我的代码如下:

def sum(a, b)
  a + b
end

puts sum.call 2, 3
Run Code Online (Sandbox Code Playgroud)

我得到一个错误:

wrong number of arguments (given 0, expected 2) (ArgumentError)
Run Code Online (Sandbox Code Playgroud)

我该如何调用函数?

编辑

我希望有一个函数能够调用具有某些参数的其他函数.我编写了如下代码,但仍然显示相同的错误.

def sum(a, b)
  a + b
end

def kall(func, *args)
  send(func, *args)
end

puts kall(sum, 2, 3)
Run Code Online (Sandbox Code Playgroud)

lui*_*sta 5

要调用该函数sum,只需删除该.call调用:

def sum(a, b)
  a + b
end

sum(1, 2)
# => 3 
Run Code Online (Sandbox Code Playgroud)

调用该方法的其他方法是:

send(:sum, 1, 2)

sum使用参数列表(1,2)调用当前上下文/对象上的方法.