为什么这段代码需要klass?

时间:2009-09-13 16:41:27

标签: ruby

    def record
      return unless @supported

      klasses = profile_options[:formats].map { |f| RubyProf.const_get("#{f.to_s.camelize}Printer") }.compact

      klasses.each do |klass|
        fname = output_filename(klass)
        FileUtils.mkdir_p(File.dirname(fname))
        File.open(fname, 'wb') do |file|
          klass.new(@data).print(file, profile_options.slice(:min_percent))
        end
      end
    end

我理解'klass'用于防止命名空间与关键字'class'冲突,但为什么在此代码中需要'klass'或'class'(来自Rails :: ActiveSupport) - 它们的目的是什么?什么是klass用于这里?或者,如果使用了类,为什么需要它呢?什么是klass / class?

2 个答案:

答案 0 :(得分:6)

class是定义类的关键字。 klass只是一个给局部变量的名称,如果不是因为你不能命名一个局部变量class,那么本地变量就会被称为class。除了klass之外的变量,名称class没有特别的意义。

答案 1 :(得分:-2)

我认为这是为了可读性。当你有一长串代码时,即使它只使用一次,有时也会在某些中间步骤命名。