Ruby对象有内置的getter/setter方法吗?

Phi*_*ide 1 ruby

在某些语言中,您可以访问对象的属性,而无需编写自己的getter/setter方法.

使用Ruby构建了getter/setter对象吗?

这是我正在尝试的:

class Obj
  def initialize(color)
    @color = color
  end
end

t = Obj.new("red")

puts t.color
Run Code Online (Sandbox Code Playgroud)

Sim*_*ime 6

您正在寻找attr_accessor :color是否只想运行磨机自动生成的吸气剂/定位器.

为此模块定义命名属性,其名称为symbol.id2name,创建实例变量(@name)以及相应的访问方法以读取它.还创建一个名为name =的方法来设置属性.字符串参数转换为符号.

attr_reader :color如果你不想在课外设置值,那也只是一个

创建实例变量和返回每个实例变量值的相应方法.

attr_writer :color如果你想设置,但不识字,在课堂外.

创建一个访问器方法以允许分配属性.

class Obj
  attr_accessor :color

  def initialize(color)
    @color = color
  end
end

t = Obj.new("red")
t.color #=> "red"
Run Code Online (Sandbox Code Playgroud)