我从 Rails 文档中得到这个:
{1 => 2}.diff(1 => 2) # => {}
{1 => 2}.diff(1 => 3) # => {1 => 2}
{}.diff(1 => 2) # => {1 => 2}
{1 => 2, 3 => 4}.diff(1 => 2) # => {3 => 4}
这几乎是完美的,但我不希望散列中的值作为参数传递,而不是调用散列中。
我想要的是:
{}.diff(1 => 2) # => {}
{a: 1}.diff({a: 1, b: 2}) # => {} instead of {:b => 2}
此外,它必须尽可能高效。例如,我不想检查第二个散列并检查内部的每个键是否没有出现在第一个散列中。
有任何想法吗?