Ruby 从返回self的数组中删除
如果我想从数组中删除一些元素并返回自身,下面的foo1和foo2(当只有一个元素要删除时为foo2)是正确的方法吗Ruby 从返回self的数组中删除,ruby,Ruby,如果我想从数组中删除一些元素并返回自身,下面的foo1和foo2(当只有一个元素要删除时为foo2)是正确的方法吗 class Array def foo1 *args; delete_if{|x| args.include?(x)} end def foo2 arg; delete(arg); self end end 这有点难看,但减号函数的作用很简单,从一个数组中减去另一个数组: ary = [1, 2, 99, 3] ary.-([99]) 或 这里的优点是它是完全可
class Array
def foo1 *args; delete_if{|x| args.include?(x)} end
def foo2 arg; delete(arg); self end
end
这有点难看,但减号函数的作用很简单,从一个数组中减去另一个数组:
ary = [1, 2, 99, 3]
ary.-([99])
或
这里的优点是它是完全可链接的(不同于.delete
或ari-赔率
),因此您可以执行以下操作:
ary.-(odds).average
一旦你的眼睛找到了负号,阅读、理解和视觉识别打字错误就比容易得多。如果结构,请删除
如果你得到的是nil而不是数组,那么Ruby的安全导航操作符,&.
,也可以很好地使用它。这是用减法数组做不到的
maybe_array&.-(odds)&.average
似乎您可以只传递一个数组来删除_if,而不使用猴子修补数组[1,2,3]。如果([2,4])返回错误,则删除_if。实际上,我想要的是self-=args
odds = [1, 3, 5, 7, 9, 99]
ary.-(odds)
ary.-(odds).average
maybe_array&.-(odds)&.average