我想改写一下:
my_hash['a'] += 5
就像这样:
my_hash. send (:[]+=, 'a', 5)
但:[]+=
无效。
有办法做到这一点吗?
答案 0 :(得分:3)
怎么样:
my_array.send(:[]=, 'a', my_array['a'] + 5)
答案 1 :(得分:2)
这是语法糖:
my_array['a'] = my_array['a'] + 5
因此该方法在元素(不是数组)上是+
,在数组本身上是[]
和[]=
。 (或者更准确地说,在哈希上。)