我有两个数组a
和b
。我可以使用a = a + b
作为
send
a = a.send(:+, b)
有没有办法使用a += b
重写send
,这样的话?
a.send(:+=, b)
答案 0 :(得分:3)
+
是一个运算符和方法。 +=
只是一个运算符,没有相应的方法。它是a = a + b
的语法快捷方式。您不能将:+=
与send
一起使用。
答案 1 :(得分:1)
就像塞尔吉奥所说的那样,+=
不能这样做,但你可以用concat
来做。
a.send(:concat, b)
请注意,这与执行+=
不完全相同,因为使用concat
时,a
将引用与之前相同的对象,而使用+=
,它将是一个新创建的对象。