dod*_*747 3 ruby ruby-on-rails ruby-on-rails-3
是否可以将算术运算符(*,+, - ,/)作为参数传递给ruby方法?我已经看到这在C++中执行.轨道能够类似吗?
def calculate(operator)
1254 operator 34
end
puts calculate(+)
Run Code Online (Sandbox Code Playgroud)
你可以使用一个块,并做类似的事情
def calculate
yield 1254,34
end
calculate &:+ # => 1288
Run Code Online (Sandbox Code Playgroud)
用途Object#send:
def calculate(op)
1254.send(op, 34)
end
puts calculate(:+)
Run Code Online (Sandbox Code Playgroud)
这适用于任何方法,包括定义的算术运算符。请注意,您需要将方法名称作为符号或字符串发送。
| 归档时间: |
|
| 查看次数: |
1369 次 |
| 最近记录: |