有时,当我将方法名称作为参数传递时,我发现自己希望有一个身份函数any_obj.send(:identity) == any_obj
,所以,而不是这个:
(transform.nil?) ? my_obj : my_obj.send(transform)
我可以写
my_obj.send(transform || :identity)
(这是一个人为的例子——在更复杂的例子中,一个恒等函数可以做的不仅仅是节省一些击键。)
打开 Object 的定义并添加它会很容易,但是我已经忽略了一些东西吗?其他人也想要这个吗?
PS:我知道我的例子确实应该说明any_obj.send(:identity).equal?(any_obj)
,但有时迂腐掩盖了这个问题。