我希望使用一个数组作为实例变量attr_accessor.
但不attr_accessor只是为了弦乐?
如何在阵列上使用它?
更新:
例如.如果你想:
object.array = "cat"
object.array = "dog"
pp object.array
=> ["cat", "dog"]
那你必须自己创建这些方法吗?
Rya*_*ary 20
class SomeObject
  attr_accessor :array
  def initialize
    self.array = []
  end
end
o = SomeObject.new
o.array.push :a
o.array.push :b
o.array << :c
o.array.inspect   #=> [:a, :b, :c]
Dou*_*las 14
重新更新:
虽然你可以实现一个按你所描述的方式运行的类,但这很不寻常,并且可能会混淆使用该类的任何人.
通常访问者有setter和getter.当你使用setter设置某些东西时,你会从getter中得到同样的东西.在下面的示例中,您将获得与getter完全不同的内容.您应该使用一种add方法,而不是使用setter .
class StrangePropertyAccessorClass
  def initialize
    @data = []
  end
  def array=(value)   # this is bad, use the add method below instead
    @data.push(value)
  end
  def array
    @data
  end
end
object = StrangePropertyAccessorClass.new
object.array = "cat"
object.array = "dog"
pp object.array
add方法如下所示:
  def add(value)
    @data.push(value)
  end
...
object.add "cat"
object.add "dog"
pp object.array
| 归档时间: | 
 | 
| 查看次数: | 16076 次 | 
| 最近记录: |