我正在处理一个包含大型实例数组的类。
每当我像这样初始化一个类时,例如i = Image.new
,我从数组中得到大量垃圾输出(@r
、@g
、@b
- 每个大约 300k 个值)。
class Image
def initialize(width=640, height=480, brightness=64)
@width, @height, @brightness = width, height, brightness
self.load('usart.dat')
end
def load(file='usart.dat')
self.reset
f = IO.read(file, @height * @width * 2, 0)
# Parsing the datafile, saving data in @r, @g, @b, @gray etc
end
return self
end
# ... More methods
end
问题是,我怎样才能使输出静音(所有结果都保存到一个文件中,从不在控制台中查看)或使初始化程序不检查 self 。我想返回 self
,因为我想堆叠方法,例如image.load('file').binary.grayscale.save(:bin)
。
最佳答案
此类问题的常见解决方法是添加 ; nil
在 IRB 中,例如i = Image.new ;无
。这样,最后计算的表达式是 nil
,它也将被返回。
>> Foo.new
=> #<Foo:0x00000000e3b9d0 @a=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]>
>> Foo.new ; nil
=> nil
关于ruby - 特定类别的 IRB 输出静音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8588173/