如何创建一个程序,允许用户标记提供的输入类型?

时间:2016-10-10 19:10:27

标签: ruby

我在Ruby中有一个程序,它接受一个电话号码并能从该号码中提取信息。它可以告诉我区号,根和号码的前缀。

我现在想添加另一个参数,用户可以输入该特定电话号码是他们的小区,工作号码等。

例如:

MyContact1 = Info.new ('(555) 555-5555', :home)
=>(555) 555-5555 (home)

MyContact1.label
=>"home"

MyContact2. = Info.new (' 555-555-5555, "work")
=>(555) 555-5555 (work)

这是我的代码:

class PhoneNumber

  def initialize (ph)
    @ph = ph
    @ph.insert(0, '(')
    @ph.insert(4, ')')
    @ph.insert(5, ' ')
    @ph.insert(9, "-")
  end
  def to_s
    @ph
  end
  def area_code
    @ph.slice(0..5)
  end
  def prefix
    @ph.slice(6..8)
  end
  def root
    @ph.slice(10..13)
  end
end
print "Please enter a phone number: "
puts a = PhoneNumber.new(gets.strip)
puts a.area_code
puts a.prefix
puts a.root

1 个答案:

答案 0 :(得分:0)

只需扩展初始化方法以接受更多参数:

class PhoneNumber

  attr_reader :label

  def initialize(ph, label)
    @ph = ph
    @label = label
    # ...
  end
  # ...
end

现在您可以传递一个数字标签,并且您已定义一个方法来检索此标签:

a = PhoneNumber.new('555-555-5555', :home)
#=> #<PhoneNumber:0x007fd7cb149fb0 @label=:home, @ph="(555) -55-5-5555">
[8] pry(main)> a.label
#=> :home