Я хочу переписать так:Каково имя метода + = для хэша?
my_hash['a'] += 5
в чем-то вроде этого:
my_hash. send (:[]+=, 'a', 5)
но :[]+=
не работает.
Есть ли способ сделать это?
Я хочу переписать так:Каково имя метода + = для хэша?
my_hash['a'] += 5
в чем-то вроде этого:
my_hash. send (:[]+=, 'a', 5)
но :[]+=
не работает.
Есть ли способ сделать это?
Как насчет:
my_array.send(:[]=, 'a', my_array['a'] + 5)
Это синтаксический сахар для:
my_array['a'] = my_array['a'] + 5
Так метод +
на элементе (не массив), и []
[]=
и на самом массиве. (Или, точнее здесь, на хэш.)
В Ruby называется ассоциативным массивом * хэш *. – Stefan