ruby - 特定类别的 IRB 输出静音

标签 ruby

我正在处理一个包含大型实例数组的类。

每当我像这样初始化一个类时,例如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/

相关文章:

Ruby 的对象#define_method 与模块#define_method

ruby-on-rails - Ruby graphql 如何定义不是 Active Record 的对象类型?

ruby-on-rails - 无法打开与本地主机 :9200 - Rails on Docker 的 TCP 连接

ruby - 创建带有参数的动态方法

ruby-on-rails - rails : Why shouldn't I directly make changes directly in schema than do migrate

ruby - 如何找到以 ".."开头的字符串?

ruby - Chef : how to get a timestamp at *convergence* rather than *compile* time

Ruby如何从给定数字生成随机数

ruby - 在 YARD 中使用多种方法记录鸭子类型

ruby - 扩展数组隐藏初始化程序?