Ruby 将数据从函数传递到同一类中的另一个函数

Ruby 将数据从函数传递到同一类中的另一个函数,ruby,Ruby,我有以下课程: class Foo def [](*files) end def read(file) end end 我想调用如下所示的函数: bar = Foo.new bar['todo.txt'].read 有没有办法使这种语法成为可能?使用实例变量在实例方法之间共享上下文 class Foo def [](*files) @files = files self end def read(file = nil) if file

我有以下课程:

class Foo
  def [](*files)
  end

  def read(file)
  end
end
我想调用如下所示的函数:

bar = Foo.new
bar['todo.txt'].read

有没有办法使这种语法成为可能?

使用实例变量在实例方法之间共享上下文

class Foo
  def [](*files)
    @files = files
    self
  end
  def read(file = nil)
    if file
      File.read(file)
    else
      @files.map{|file| File.read(file)}.join
    end
  end
end

使用实例变量在实例方法之间共享上下文

class Foo
  def [](*files)
    @files = files
    self
  end
  def read(file = nil)
    if file
      File.read(file)
    else
      @files.map{|file| File.read(file)}.join
    end
  end
end

如果您希望能够链接这些方法,我相信您必须从
[]
返回
self

class Foo
  attr_accessor :files
  def [](*files)
    @files = files
    self
  end

  def read
    p @files
  end
end

如果您希望能够链接这些方法,我相信您必须从
[]
返回
self

class Foo
  attr_accessor :files
  def [](*files)
    @files = files
    self
  end

  def read
    p @files
  end
end