实例变量和attr_accessor

Trt*_*Trt -1 ruby

当我@foo=3initialize方法中定义时,我希望像这样访问我的变量.

class Object
  def initialize(v)
    @foo = v
  end

  Object.new.foo
Run Code Online (Sandbox Code Playgroud)

但这不会发生.我需要写attr_accessor :foo.为什么我需要这样做,即使@已经为我做了这个?

p.m*_*los 5

Ruby中的一个实例变量默认不公开.并且应该基于访问者授予访问权限.

对于只读仅attr_reader 用于写入attr_writer 用于读写attr_accessor

默认情况下无法访问它