Я изучаю Структуры. Каждая структура имеет только два значения: идентификатор продукта и количество. Например:Можно ли суммировать массив структур по ключевому значению в Ruby?
prodcode = 2473 , quantity = 1
prodcode = 2473 , quantity = 4
prodcode = 3328 , quantity = 6
prodcode = 2958 , quantity = 3
prodcode = 2473 , quantity = 7
prodcode = 2958 , quantity = 2
prodcode = 2473 , quantity = -1
Я хочу, чтобы получить сумму количества через структуры, как это:
prodcode = 2473 , quantity = 11
prodcode = 3328 , quantity = 6
prodcode = 2958 , quantity = 5
Сортировку в порядке убывания по количеству будет плюсом. Вот код, который я использую для создания массива структуры в вопросе:
class Figs < Struct.new(:prodcode, :quantity)
def print_csv_record
prodcode.length==0 ? printf(",") : printf(prodcode)
quantity.length==0 ? printf(",") : printf(",", quantity.to_i)
printf("\n")
end
end
...
for x in 0...global.length
p = Figs.new
p.prodcode = global[x][0]
p.quantity = global[x][1].to_i
figures.push(p)
end
Struct массив является «цифрой», но я получаю
undefined local variable or method 'quantity' for main:Object (NameError)
Спасибо! Этот трюк сделал! –