动态需要文件?

Posted

技术标签:

【中文标题】动态需要文件?【英文标题】:Dynamically requiring files? 【发布时间】:2011-01-14 21:20:19 【问题描述】:

有没有人足够了解 Ruby 的 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

如果是这样,require 是否会像在文件顶部那样将 gem 放入全局命名空间中?

【问题讨论】:

【参考方案1】:

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

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

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

【讨论】:

对拼写道歉 ;) 没问题 - 好问题(来自我的 +1)【参考方案2】:

如果是这样,需要放置宝石吗 进入全局命名空间一样 require 在文件的顶部会?

是的。 require 没有范围,而 load 有。

【讨论】:

太棒了,这就是我想知道的:)

以上是关于动态需要文件?的主要内容,如果未能解决你的问题,请参考以下文章

什么叫静态库和动态库

ios 本地工程加载自定义动态库时,需要对动态库进行签名吗

webpack需要动态文件路径?

怎么查看一个动态库 需要链接 文件

动态链接库

动态链接库