我怎么知道我需要明确要求的Ruby标准库?

时间:2013-03-18 14:23:53

标签: ruby

我一直在关注1.9.3的Ruby Standard Library Documentation。我想知道如何找出我需要明确要求的库。

例如,我被告知我需要明确要求json库,而不是rubygems,尽管它们都出现在标准库列表中。

还有另一个地方我可以查找有关要求的信息,甚至是我可以运行的pry / irb命令来查看已经“需要”的内容吗?

2 个答案:

答案 0 :(得分:7)

如果您想使用它,必须要求/加载每个库。

在性能方面,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)

答案 1 :(得分:2)

无论如何要求事情通常都没有坏处。如果它们已被加载,一般而言,require语句无效。

某些核心库组件可以通过引用其顶级符号自动加载或自动加载。这个列表从一个版本的Ruby到另一个版本不等。