我的代码如下:
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)
要调用该函数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)调用当前上下文/对象上的方法.
| 归档时间: |
|
| 查看次数: |
70 次 |
| 最近记录: |