你如何将参数传递给Ruby中的类<< self?

kin*_*sis 1 ruby class self

你如何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)
Run Code Online (Sandbox Code Playgroud)

And*_*all 5

参数没有传递给class << self它们,它们被传递给方法:

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

你可以阅读一下详细的描述class << self确实,如果它混淆了你,但总之:它开辟了类的单例类,所以你可以添加方法给它.