在Ruby中遇到Person类的问题

use*_*977 1 ruby class

我想我正走在正确的轨道上,但是当我试图呼叫p.first_name时.我得到一个错误,可以在截图中看到,有谁知道我做错了什么?

截图http://snag.gy/pj6ny.jpg 如果你看不到,这里有一个链接:http://snag.gy/pj6ny.jpg

这是代码:

class Person 

    def initialize (first_name, last_name, age)  
        @first_name = first_name  
        @last_name = last_name
        @age = age  

    end  
end
Run Code Online (Sandbox Code Playgroud)

我进去的时候一切都很好

> p = Person.new("Earl", "Rubens-Watts", 2)
Run Code Online (Sandbox Code Playgroud)

但那之后很奇怪.期望的输出是:

 > p = Person.new("Earl", "Rubens-Watts", 2)
  > p.first_name
  => "Earl"
  > p.last_name
  => "Rubens-Watts"
  > p.age
  => 2
Run Code Online (Sandbox Code Playgroud)

谢谢!

scz*_*zzo 6

您尚未定义first_name方法或声明任何属性.试试这个:

class Person 
    attr_reader :first_name, :last_name, :age
    def initialize (first_name, last_name, age)  
        @first_name = first_name  
        @last_name = last_name
        @age = age
    end
end
Run Code Online (Sandbox Code Playgroud)