1

你如何class << self在 Ruby 中传递参数?我在下面有一个正在使用的片段,我正在尝试使用 RMagick 生成图片。

#!/usr/bin/env ruby
%w[ rubygems RMagick ].each{|l| require l  }
%w[ Magick ].each{|i| require i }

module ImgGen
  class << self
    def start
      stripes = ImageList.new
      puts "hi"
    end

  end
end

WIDTH=650
HEIGHT=40
FILENAME="output.png"
FONT="winvga1.ttf"
ImgGen.start(WIDTH, HEIGHT, FILENAME, FONT)
4

1 回答 1

5

参数不会传递给class << self,而是传递给方法:

module ImgGen
  class << self
    def start(width, height, filename, font)
      stripes = ImageList.new
      puts "hi"
    end
  end
end

如果它让您感到困惑,您可以阅读详细说明class << self,但简而言之:它打开了类的单例类,因此您可以向它添加方法。

于 2012-05-18T22:56:42.010 回答