也许这听起来很荒谬,但我想知道这可能与Ruby有关吗?基本上我有一个功能...
def add a,b
c = a + b
return c
end
我希望能够将“+”或其他运算符(例如“ - ”)传递给函数,以便它可以像......一样......
def sum a,b,operator
c = a operator b
return c
end
这可能吗?
答案 0 :(得分:11)
两种可能性:
将方法/操作员名称作为符号:
def sum a,b,operator
a.send(operator, b)
end
sum 42, 23, :+
或者更一般的解决方案:采取阻止:
def sum a,b
yield a,b
end
sum 42, 23, &:+
答案 1 :(得分:2)