Ruby 如何进行连续的破坏性加法/减法?
编辑问题的上一版本没有准确反映我的问题。我编辑了它 我想做一系列破坏性的加法/减法(对具有相应方法的可变对象)。Ruby 如何进行连续的破坏性加法/减法?,ruby,arrays,ruby-1.9,Ruby,Arrays,Ruby 1.9,编辑问题的上一版本没有准确反映我的问题。我编辑了它 我想做一系列破坏性的加法/减法(对具有相应方法的可变对象)。之后,由以下人员分配一个: a = [:a, :b] 以下所有操作都返回语法错误 a -= [:b] += [:c] (a -= [:b]) += [:c] a.-=([:b]).+=([:c]) 有没有正确的方法,或者这样做没有意义?您不能指定数组文字,例如,[:b]+=[:c]是语法错误,就像[:b]=[:c]是语法错误一样。左侧必须是变量名,或将被重写为方法调用的内容(例如[
之后,由以下人员分配一个
:
a = [:a, :b]
以下所有操作都返回语法错误
a -= [:b] += [:c]
(a -= [:b]) += [:c]
a.-=([:b]).+=([:c])
有没有正确的方法,或者这样做没有意义?您不能指定数组文字,例如,
[:b]+=[:c]
是语法错误,就像[: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])
“我甚至不明白你想达到什么目的。”西奥我编辑了我的问题。你现在明白了吗?