将操作员传递给函数?
也许这听起来很荒谬,但我想知道这可能与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, &:+