Как хранить данные, взятые у пользователя, в массиве - PullRequest
0 голосов
/ 21 сентября 2018

Я разрабатываю систему управления больницей в командной строке.Я хочу получить значение от пользователя, присвоить его переменной экземпляра и затем сохранить его в массиве.Код выглядит следующим образом:

def doctor_details
  @doctors = Array.new
  puts 'Enter Doctor Name'
  @doc_name = gets
  @doctors << @doc_name 
  puts 'Enter specialization'
  @doc_specialization = gets
  puts 'Availability of doctor'
  @from = Float(gets)
  @to = Float(gets)
end

Каждый раз, когда вводится новое значение, оно перезаписывает предыдущее значение.

1 Ответ

0 голосов
/ 21 сентября 2018

Что бы вы ни написали, оно добавит входные данные в переменную экземпляра @doctors для этого конкретного прогона, то есть для этого конкретного @doctor.Если вам нужно сохранить сведения обо всех врачах в одной переменной экземпляра, объявите ее вне метода и запустите, как показано ниже.Будет лучше, если вы сохраните данные доктора в виде массива, например DOCTORS = [[DOCTOR1_DETAILS], [DOCTOR1_DETAILS]], вы можете сделать это с помощью

@DOCTORS = []
def doctor_details
  @doctor =[]
  puts 'Enter Doctor Name'
  doc_name = gets
  @doctor << doc_name 
  puts 'Enter specialization'
  doc_specialization = gets
  @doctor << doc_specilalization
  puts 'Availability of doctor'
  from = Float(gets)
  to = Float(gets)
  @doctor << from
  @doctor << to
  @doctors << @doctor
end

ИЛИ Вы можете просто добавить все данные кмассив, используя метод .push, как это

@doctors = []
def doctor_details
  puts 'Enter Doctor Name'
  doc_name = gets
  puts 'Enter specialization'
  doc_specialization = gets
  puts 'Availability of doctor'
  from = Float(gets)
  to = Float(gets)
  @doctors.push([doc_name,doc_specialization,from,to])
end
...