Size: a a a

Saint P Ruby Community

2020 November 20

P

Paul in Saint P Ruby Community
Dmitry Kuznetsov
уф, мощно, поздравляю)
да, мощнейше. завидую )
источник

P

Paul in Saint P Ruby Community
кстати, я тут думал вот, на старую 13шку можно купить плату с i7, будет 4+4 процессор, по памяти вроде 16GB они
источник

P

Paul in Saint P Ruby Community
правда, непонятно, наколько это интересно по деньгам
источник

w

wi11son in Saint P Ruby Community
слушайте, а что за метод есть аккумулирующий, кроме инжекта
источник

w

wi11son in Saint P Ruby Community
типа на хеше, если ключа не было, то записать, а если был, то заинкрементить
источник

CM

Cucumba Morozov in Saint P Ruby Community
irb(main):001:0> buff = Hash.new(0)
=> {}
irb(main):002:0> buff[:hello] += 1
=> 1
irb(main):003:0> buff[:there] += 4
=> 4
irb(main):004:0> buff
=> {:hello=>1, :there=>4}
источник

CM

Cucumba Morozov in Saint P Ruby Community
так что ли?
источник

w

wi11son in Saint P Ruby Community
line_items.inject({}) do |tax_groups, line_item|
       if tax_groups.key?(line_item["tax_lines"])
         tax_groups[key].push(line_item)
       else
         tax_groups[key] = [line_item]
       end

       tax_groups
     end
источник

CM

Cucumba Morozov in Saint P Ruby Community
если есть AS, то each_with_object(Hash.new(0))
источник

v

vveare138 in Saint P Ruby Community
each.with_object можно на руби
источник

w

wi11son in Saint P Ruby Community
недогоняю, Вит, можешь переделать мой пример?
источник

v

vveare138 in Saint P Ruby Community
each.with_object(Hash.new(0)) do |k, o|
 o[k] += 1
end
источник

VA

Vsevolod Avramov in Saint P Ruby Community
each_with_object(Hash.new([])) do |line_item, tax_groups|
 tax_groups[key] << line_item
end
источник

w

wi11son in Saint P Ruby Community
т.е. if else остается
источник

w

wi11son in Saint P Ruby Community
потому что мне нужно было бы тогда все ключи изначально запихнуть
источник

w

wi11son in Saint P Ruby Community
а
источник

VA

Vsevolod Avramov in Saint P Ruby Community
wi11son
т.е. if else остается
я исправил. не понял что тебе надо изначально
источник

w

wi11son in Saint P Ruby Community
спасибо
источник

CM

Cucumba Morozov in Saint P Ruby Community
я бы советовал быть осторожным с такой конструкцией и предпочесть вербозность:

tax_groups[key] ||= []
tax_groups[key] << line_item


причина проста — Hash.new(default) меняет структуру, когда ты пытаешься к ней обратиться. забудешь — можешь нарожать новых ключей ненужных
источник

w

wi11son in Saint P Ruby Community
т.е. вместо each_with_object
источник