你有没有看到任何缺点(除了明显的猴子补丁)这样做?
class Hash
def +(other)
self.merge(other)
end
end
我发现这非常方便,但也许有些东西我没有考虑,可能会有问题。
答案 0 :(得分:3)
我没有看到任何重大缺点。一个非常小的缺点是它为调用堆栈增加了额外的级别,使其稍微变慢。为避免这种情况,您可以使用别名:
class Hash
alias :+ :merge
end
一个好处可能是您可以使用+=
语法糖,但我想不出您要使用+=
而不是merge!
的用例。它们之间的区别在于对象id是否会发生变化。