【发布时间】:2019-02-25 10:32:32
【问题描述】:
我正在命令行上开发医院管理系统。我想从用户那里获取一个值,将它分配给一个实例变量,然后将它进一步存储在一个数组中。代码如下:
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
每次输入新值时,都会覆盖之前的值。
【问题讨论】:
-
当前发布的方法将接受一次输入,在下一次来自irb的调用中,实例值将被重置。将数组初始化保留在方法之外或将 \@doctors = Array.new 替换为 @doctors ||= Array.new。我还建议使用哈希来保留医生的详细信息以及他们的特定专业和可用性。
-
您只将医生的姓名推送到数组中。它将如何覆盖以前的值?