Ruby有如此美妙的语法糖,我相信这会起作用:
f = :+
g = 1 f 2 // => 3
但是,当然,它没有。
有类似的东西吗?显然,有很多简单的方法可以解决这个问题,但Ruby对这种惊人的糖的承诺是否会延伸到做这样的事情?
答案 0 :(得分:3)
是的,您可以使用Object#public_send
方法执行此操作:
f = :+
puts 1.public_send(f, 2) # => 3
来自docs:
调用symbol标识的方法,并将指定的参数传递给它。与#send不同,#public_send仅调用公共方法。