我一直在关注1.9.3的Ruby Standard Library Documentation。我想知道怎样才能找到我需要显式要求的库。
例如,有人告诉我需要显式地需要json
库,但不需要rubygems
,尽管它们都出现在标准库列表中。
有没有其他地方我可以找到关于需求的信息,或者甚至是一个pry/irb命令,我可以运行它来查看已经“必需”的内容?
发布于 2013-03-18 22:31:13
如果你想使用它,每个库都必须是必需的/加载的。
在性能方面,require
是智能的,如果库已经加载,它不会加载库。
但是,如果您想检查是否需要某个库,则应该查看它定义的顶级名称空间,并检查它是否在您当前的作用域中定义。例如,打开一个IRB会话并执行以下操作:
defined? JSON # => nil (it's not loaded)
require 'json' # => true (load it)
defined? JSON # => "constant" (it's loaded)
require 'json' # => false (it's already loaded, so it's not loaded it again)
发布于 2013-03-18 22:30:46
无论如何,请求通常都不会有什么坏处。一般而言,如果它们已经被加载,则require
语句不起作用。
一些核心库组件可以自动加载,也可以通过引用它们的顶级符号来自动加载。这个列表因Ruby版本的不同而有所不同。
https://stackoverflow.com/questions/15479147
复制相似问题