Ruby有这么漂亮的语法糖,我确信这可以用:
f = :+
g = 1 f 2 // => 3
但是,当然不是。
有类似的东西吗?显然,有很多简单的方法可以做到这一点,但是Ruby对惊人糖的承诺是否扩展到了这样做?
是的,您可以使用Object#public_send
方法来做到这一点:
f = :+
puts 1.public_send(f, 2) # => 3
从文档:
调用由symbol标识的方法,并向其传递任何指定的参数。与#send不同,#public_send仅调用公共方法。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句