Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.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类set/get_Ruby_Get_Set - Fatal编程技术网

Ruby类set/get

Ruby类set/get,ruby,get,set,Ruby,Get,Set,此设置/获取有什么问题 class Pupil def name @name end def name=(name) @name = name end def age @age end def age=(age) @age end end 此外,如果有一个子类有3个参数,name、age、sex,那么set get方法在child中是否仅用于sex。您能否显示set/get方法并在子类中初始化。您忘记设置@age=age d

设置/获取
有什么问题

class Pupil
  def name
    @name
  end

  def name=(name)
    @name = name
  end

  def age
    @age
  end

  def age=(age)
    @age
  end
end

此外,如果有一个子类有3个参数,name、age、sex,那么set get方法在child中是否仅用于sex。您能否显示set/get方法并在子类中初始化。

您忘记设置
@age=age

def age=(age)
    @age
  end
应该是

  def age=(age)
    @age = age
  end
您还可以通过使用attr_访问器替换get/set来美化代码,attr_访问器本身提供了一个getter/setter

 class Pupil
   attr_accessor :age,:name
 end

name
可以<代码>年龄=
不做它应该做的事。非常感谢。我解决了。(实际上,我编辑了原始问题的附加问题。)好的,
attr_accessor
就是我要找的。作为学习Ruby的人,您在官方文档中哪里可以找到这些信息?我已经看过了,但是在
模块下几乎没有提到这一点(不是
),甚至没有提到属性、getter、setter……从那里学习这些概念有点困难。基本上,我在寻找与官方Python教程类似的Ruby——我已经回答了自己的问题——Ruby-lang.org上有一个官方的Ruby快速入门