Создайте и инициализируйте случаи класса с последовательными именами

У меня есть BankAccount класс. Я пытался создать многократные случаи этого класса и поместить их во множество. Например,

accounts = [Ba1 = BankAccount.new(100), Ba2 = BankAccount.new(100)]

Я хочу инициализировать множество с большим количеством случаев внутри, скажем, 20, таким образом, из Ba1 к Ba20 . Есть ли более легкий способ сделать это вместо того, чтобы просто вручную ввести его? Я попробовал петлю, но я просто не могу выяснить, как заставить ее работать.

0
nl ja de

1 ответы

Это должно добиться цели:

accounts = 100.times.collect { BankAccount.new(100) }

Если необходимо сделать что-то другое для каждого счета, на основе которого это тогда:

accounts = 100.times.collect { |i| BankAccount.new(i) }

i represents each number in the collection being iterated over.

Если на самом деле необходимо определить имена переменной, используя данные, можно звонить оценку() .

accounts = 100.times.collect { |i| eval("B#{i} = BankAccount.new(100)") }

И теперь B1 через B100 должен быть установлен в соответствующие случаи BankAccount.

Отказ от ответственности: Я должен сказать, что этот подход будет обычно осуждаться. В этом случае у вас уже есть множество, названное счетами. Все, что необходимо сделать, является индексом на нем, чтобы получить соответствующий банковский счет. счета [50] , например, вместо Ba50 . В моих годах рубинового развития я нашел, что немного мест используют оценку, которая имела смысл.

4
добавлено
Спасибо за наконечник!
добавлено автор raed, источник
pro.ruby
pro.ruby
1 181 участник(ов)

Язык программирования Ruby Additional docs: https://rubyreferences.github.io/rubyref/ Invite: https://telegram.me/joinchat/Be4rsT2NuB3CyJaF26j1kA Кто хочет компилировать: @crystal_ru (его синтаксис основан на Ruby) Участник @proDOT

Ruby, Rails, Hanami | dry-rb
Ruby, Rails, Hanami | dry-rb
1 180 участник(ов)

https://telegram.me/rubyjob - Ruby Job По вопросам - @eugene_shved

Ruby School .us
Ruby School .us
1 045 участник(ов)

Чат-болталка для учеников руби-школы и не только. Правила: https://telegra.ph/Pravila-chata-Rubi-shkoly-03-13

Random Ruby Chat
Random Ruby Chat
589 участник(ов)

Правила публикации вакансий: https://t.me/codenamecrud/60865

Rubyata
Rubyata
333 участник(ов)

Коммюнити Ruby и Ruby On Rails Флуд не приветствуются. Вакансии можно публиковать только и ТОЛЬКО по пятницам с хештегом #вакансия.

Ruby Talks
Ruby Talks
236 участник(ов)

Национальная Флеймотека

RubyRush
RubyRush
189 участник(ов)

rubyrush.ru программирование для самых новичков