为什么这段代码需要klass?

uzo*_*uzo 1 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
Run Code Online (Sandbox Code Playgroud)

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

sep*_*p2k 6

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