如何将从用户获取的数据存储在数组中

How to store data taken from user in an array

我正在命令行上开发一个医院管理系统。我想从用户那里获取一个值,将其分配给一个实例变量,然后将其进一步存储在一个数组中。代码如下:

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

每次输入新值时,都会覆盖以前的值。

无论您编写什么,它都会将输入附加到特定 运行 的实例变量@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