Ruby错误的参数数量

时间:2018-01-23 16:08:23

标签: ruby attr-accessor

我正在尝试使用attr_accessor创建我的getter和setter。我想为变量赋值。

这是我的代码:

class Person
  def initialize(name)
    attr_accessor :name
  end

  def initialize(age)
    attr_accessor :age
  end
end

person1 = Person.new
person1.name = "Andre"
person1.age  = 22
但是我遇到了一些麻烦。我的错误是:

q5.rb:6:in `initialize': wrong number of arguments (given 0, expected 1) (ArgumentError)

1 个答案:

答案 0 :(得分:2)

这就是你要做的事情:

class Person 
  attr_accessor :name, :age
end

person1 = Person.new
person1.name = "Andre"
person1.age  = 22

例如,替代方法可以是:

class Person 
  attr_accessor :name, :age

  def initialize(name, age)
    @name = name
    @age = age
  end
end

person1 = Person.new("Andre", 22)

您看到的错误是因为您定义(然后重新定义)期望一个参数的initialize方法:

def initialize(name)

然后尝试在不提供参数的情况下创建对象:

person1 = Person.new