每当我初始化这样的类时,例如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,因为我想要堆叠方法,例如image.load( ‘文件’)binary.grayscale.save.(:BIN).
解决方法 您看到的输出是对象的to_s(或检查)的结果.您可以为类定义/覆盖to_s(或检查)以产生较少的输出.例如.irb(main):001:0> class Fooirb(main):002:1> def initializeirb(main):003:2> @a = @b = @c = @d = 42irb(main):004:2> endirb(main):005:1>irb(main):006:1* def to_sirb(main):007:2> 'a Foo object'irb(main):008:2> endirb(main):009:1> end=> nilirb(main):010:0> h = Foo.new=> a Foo objectirb(main):011:0>
关于to_s / inspect:irb调用通常只调用to_s的inspect(参见ruby-doc).因此,定义to_s通常应该有效.但是,如果检查没有在类(或其祖先)中调用to_s,则必须覆盖此检查.
总结以上是内存溢出为你收集整理的ruby – 特定类的IRB静音输出全部内容,希望文章能够帮你解决ruby – 特定类的IRB静音输出所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)