代码之家  ›  专栏  ›  技术社区  ›  Roja Buck

动态要求文件?

  •  19
  • Roja Buck  · 技术社区  · 16 年前

    有人对鲁比的了解够多吗 require 告诉我以下语法是否有效:

    class Something
    
      def initialize(mode)
         case mode
         when :one then require 'some_gem'
         when :two then require 'other_gem'
         end
      end
    
    end
    
    s = Something.new
    

    如果是这样,将会 要求 将gem放在全局名称空间中,就像放在文件顶部一样?

    2 回复  |  直到 13 年前
        1
  •  16
  •   Simone Carletti    16 年前

    如果是的话,是否需要放置宝石? 在全局命名空间中 要求放在文件顶部会吗?

    对。 require 没有范围,而 load 做。

        2
  •  5
  •   Chris McCauley    16 年前

    是的,它是完全有效的,并且可以按预期工作,因为需求没有作用域

    Require从指定的文件中提取代码并尝试就地使用它——这可能意味着这样做是不明智的,但可以做到。

    本地方法范围将不受影响,任何类定义等都将在预期范围内。