Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 错误的参数数_Ruby_Attr Accessor - Fatal编程技术网

Ruby 错误的参数数

Ruby 错误的参数数,ruby,attr-accessor,Ruby,Attr Accessor,我正在尝试使用attr\u访问器创建我的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 不过我遇到了一些麻烦。我的错

我正在尝试使用
attr\u访问器
创建我的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)

这就是你想要做的:

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
然后尝试在不提供参数的情况下创建对象:

def initialize(name)
person1 = Person.new

非常感谢。时限到了我会接受你的答复up@Tiffx97注意这个答案中的缩进,两个空格:)还有一个问题。当我尝试使用“put”打印出来时,我的响应是#您希望
将person1
显示什么?这是
Person
的一个实例,所以这正是您看到的!如果使用第二种方法(我通常会推荐),那么还可以看到实例变量:
如果希望它显示其他内容,那么可以在类上定义自定义的
方法。但这远远超出了你最初问题的范围:)