传递数据,从功能到另一个相同的类中
问题描述:
我有下面的类:传递数据,从功能到另一个相同的类中
class Foo
def [](*files)
end
def read(file)
end
end
,我想打电话给读这样的功能:
bar = Foo.new
bar['todo.txt'].read
有没有一种方法,使这个语法可能吗?
答
如果您希望能够以链的那些方法,我相信你将不得不从[]
返回self
。
class Foo
attr_accessor :files
def [](*files)
@files = files
self
end
def read
p @files
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