我在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
答案 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