2

私は次のクラスを持っています:

class Foo
  def [](*files)
  end

  def read(file)
  end
end

そして、関数 read を次のように呼び出したい:

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

この構文を可能にする方法はありますか?

4

2 に答える 2

2

これらのメソッドをチェーンできるようにしたい場合は、から戻る必要があると思いselfます[]

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

  def read
    p @files
  end
end
于 2013-06-28T23:40:48.790 に答える