ruby - 使用 Ruby 将运算符存储在变量中

标签 ruby operators

Ruby 有如此漂亮的语法糖,我确信这会起作用:

f = :+
g = 1 f 2 // => 3

当然,事实并非如此。

有类似的吗?显然有很多简单的方法可以解决这个问题,但是 Ruby 对神奇糖的 promise 是否可以扩展到做这样的事情?

最佳答案

是的,您可以使用 Object#public_send方法:

f = :+
puts 1.public_send(f, 2) # => 3

来自文档:

Invokes the method identified by symbol, passing it any arguments specified. Unlike #send, #public_send calls public methods only.

关于ruby - 使用 Ruby 将运算符存储在变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28378317/

相关文章:

C++ 逻辑与运算符

ruby-on-rails - ActiveRecord 条件覆盖和 default_scope

ruby-on-rails - Rails 控制台错误 : undefined method `each' for nil:NilClass (NoMethodError)

javascript - (Ruby、Rails、Javascript)使用 javascript 窗口等管理嵌套模型...?

ruby-on-rails - rails : possible to check if a string is binary?

Golang 运算符 &^ 工作细节

javascript - 比较操作 - 正确的语法?

java.lang.Number 没有实现 "+"或任何其他运算符?

c - c语言中的 "pointer to a pointer"是什么?

ruby-on-rails - Rails PostgreSQL 获取保存的对象的大部分重复属性并将其打印到屏幕