动态需要文件?
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
有。
【讨论】:
太棒了,这就是我想知道的:)以上是关于动态需要文件?的主要内容,如果未能解决你的问题,请参考以下文章