1

我有两个数组ab. 我可以a = a + b使用sendas重写

a = a.send(:+, b)

有没有办法a += b使用类似的send东西重写?

a.send(:+=, b)
4

2 回答 2

3

+是运算符方法。+=只是一个操作符,没有对应的方法。它是a = a + b. 你不能使用:+=with send

于 2013-03-04T09:03:19.797 回答
1

你不能+=像 Sergio 说的那样做,但你可以用concat.

a.send(:concat, b)

请注意,这与执行操作并不完全相同,因为+=with将引用与以前相同的对象,而 with将是新创建的对象。concata+=

于 2013-03-04T09:16:54.447 回答