将操作员传递给函数?

也许这听起来很荒谬,但我想知道这可能与Ruby有关吗? 基本上我有一个function……

def add a,b c = a + b return c end 

我希望能够将“+”或其他操作符(例如“ – ”)传递给函数,以便它可以像…

 def sum a,b,operator c = a operator b return c end 

这可能吗?

两种可能性:

将方法/运算符名称作为符号:

 def sum a,b,operator a.send(operator, b) end sum 42, 23, :+ 

或者更通用的解决方案:采取一个块:

 def sum a,b yield a,b end sum 42, 23, &:+