ruby - 我怎样才能做连续的破坏性加法/减法?

标签 ruby arrays ruby-1.9

编辑 以前版本的问题没有准确反射(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/

相关文章:

c - 结构指针数组段错误

ruby-on-rails - _mask 和 Rails

ruby-on-rails - 在 Ruby 1.9 中使用 instance_eval 进行常量查找

ruby - Rails 使用什么 sleep()?

ruby - 预期为 ArgumentError 但得到 NoMethodError

c# - 检查字符数组是否包含不同于允许的字符

ruby - 在 Ruby 版本管理器 (RVM) 中清理旧引用

ruby - 使 puts 线程安全

ruby-on-rails - Ruby:用另一个数组对数组进行排序

python - 从 sqlite 查询中删除格式