Interpolation in local variable name Ruby

  Kiến thức lập trình

I’ve got

banana_charge_1_bananas_sold = 0
banana_charge_2_bananas_sold = 0
banana_charge_3_bananas_sold = 0
banana_charge_4_bananas_sold = 0
banana_charge_5_bananas_sold = 0

and

sale_ticket.banana_charge

which is an integer 1 to 5.

Is there any way to interpolate sale_ticket.banana_charge into the local variable name, instead of going

  if sale_ticket.banana_charge == 1
    banana_charge_1_bananas_sold += number_of_scanned_bananas
  elsif sale_ticket.banana_charge == 2
    banana_charge_2_bananas_sold += number_of_scanned_bananas
  etc.

like

banana_charge_&^{sale_ticket.banana_charge}_bananas_sold += number_of_scanned_bananas

1

LEAVE A COMMENT