编辑 以前版本的问题没有准确反射(reflect)我的问题。我编辑了它。
我想做一系列破坏性的加法/减法(对具有相应方法的可变对象)。 a
被赋值后:
a = [:a, :b]
以下所有返回语法错误。
a -= [:b] += [:c]
(a -= [:b]) += [:c]
a.-=([:b]).+=([:c])
有没有办法正确地做到这一点,或者这样做没有意义?
最佳答案
首先
a = [:a, :b]
a -= [:a]
是非破坏性操作。真正的意思是
a = a - [:a]
如果你真的想链接破坏性操作,你可以,但你可能需要在现有破坏性方法的基础上创建自己的方法:
class Array
def my_delete(e)
delete(e)
self
end
end
[:a, :b].my_delete(:b).concat([:c])
关于ruby - 我怎样才能做连续的破坏性加法/减法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9812174/